当前位置:首页 > JavaScript

js 实现分享

2026-04-05 15:02:37JavaScript

使用 Web Share API 实现分享

Web Share API 是现代浏览器提供的一种原生分享功能,允许调用操作系统的分享对话框。

if (navigator.share) {
  navigator.share({
    title: '分享标题',
    text: '分享内容',
    url: 'https://example.com'
  })
  .then(() => console.log('分享成功'))
  .catch((error) => console.log('分享失败:', error));
} else {
  console.log('浏览器不支持Web Share API');
}

自定义社交平台分享

对于不支持Web Share API的浏览器或特定平台分享,可以使用URL scheme实现。

js 实现分享

function shareToPlatform(platform) {
  const url = encodeURIComponent('https://example.com');
  const title = encodeURIComponent('分享标题');
  const text = encodeURIComponent('分享内容');

  let shareUrl = '';

  switch(platform) {
    case 'twitter':
      shareUrl = `https://twitter.com/intent/tweet?text=${text}&url=${url}`;
      break;
    case 'facebook':
      shareUrl = `https://www.facebook.com/sharer/sharer.php?u=${url}`;
      break;
    case 'linkedin':
      shareUrl = `https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${title}`;
      break;
    case 'weibo':
      shareUrl = `http://service.weibo.com/share/share.php?url=${url}&title=${title}`;
      break;
  }

  window.open(shareUrl, '_blank', 'width=600,height=400');
}

复制链接到剪贴板

实现复制当前页面URL到剪贴板的功能。

js 实现分享

function copyToClipboard() {
  const url = window.location.href;
  navigator.clipboard.writeText(url)
    .then(() => alert('链接已复制到剪贴板'))
    .catch(err => console.error('复制失败:', err));
}

邮件分享

生成邮件分享链接,预填充主题和正文。

function shareViaEmail() {
  const subject = encodeURIComponent('分享标题');
  const body = encodeURIComponent(`分享内容\n${window.location.href}`);
  window.location.href = `mailto:?subject=${subject}&body=${body}`;
}

二维码分享

使用第三方库生成当前页面的二维码。

// 需要先引入qrcode.js库
function generateQRCode() {
  const qrCode = new QRCode(document.getElementById('qrcode'), {
    text: window.location.href,
    width: 128,
    height: 128
  });
}

注意事项

  • Web Share API仅在HTTPS环境下或localhost可用
  • 移动端浏览器对分享API的支持更好
  • 自定义分享按钮需要考虑各平台的URL scheme差异
  • 复制剪贴板功能可能需要用户交互触发
  • 二维码生成需要引入第三方库如qrcode.js

标签: js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…