在网页中,经常会用到分享功能,例如分享到qq,分享到微信,分享到微博等,但是怎么实现呢?一直没有想清楚这个问题,觉得好高大上的样子,于是在网上找了一些资料,也没有看出个什么所以然来;

于是有些心急了,就照着网上的样子,照葫芦画瓢,写一个分享的代码出来,很新奇,居然能够实现了;然后拆解分享的步骤,似乎相同了一些,归纳如下:

我们要分享的页面,提取它的几个参数,例如标题,网页来源(微博用到),要展示分享的图片,简要内容,分享的地址(即当前网页的地址);另外一个就是分享目的地,一般有微博,微信,QQ这几个是常见的,也就是分享到的目的地址

如果用到一下几个参数,就可以吧分享的内容展示到分享目的地了,另外,微博的话,需要申请一个appkey秘钥

例如:要分享如下分享按钮:分别分享到微博,qq,微信

那怎么做呢,一种是拼接好分享地址:包括分享的地址(即要跳转的地址),以及上面说到的那些参数,把这些拼接成一个字符串地址,然后使用window.open(url)方法包起来,在点击到对应的图标上时,window.open()方法会跳转到对应的分享页面,这样就可以达到分享的目的了;

但是我在做的时候,引入了 layer.js 框架,似乎这个框架对window.open()方法改写了,当使用window.open()打开分享地址时,老是弹出来一个弹框,跳转不到目标分享页面;

所以我改用了另一种跳转方法,直接在图标上加 a 标签,把a标签的地址设置成分享地址,这样,在点击图标时,就可以跳转到分享页面了;

html代码:(分享图标对应的代码)

  <ul class="sharexia">
<div class="fenxiangdao clearfix">
<a href="http://service.weibo.com/share/share.php?" class="toweibo" target="_blank"><span
class="weibo yunafen"></span></a>
<a href="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?" class="toqq"
target="_blank">
<span class="qq yunafen"></span></a>
<a href="http://zixuephp.net/inc/qrcode_img.php?" class="toweixin" target="_blank"><span
class="weixin yunafen"></span></a>
<span class="dianzan cangfen">
<i class="zan"></i>
<code class="wen" iszhan="0">赞</code>
<code class="su" isshou="0">{$articleData['zan']}</code>
</span>
<span class="shoucang cangfen">
<i class="xin"></i>
<code class="wen">收藏</code>
<code class="su">{$articleData['collect']}</code>
</span>
</div>
</ul>

下面是对应的js代码:(备注:这是一个函数,只需在文件加载完成后,执行下面这个方法就可以了)

  function fenxianginit() {
var oweibourl = $("a.toweibo").attr("href");
var oqqurl = $("a.toqq").attr("href");
var oweixinurl = $("a.toweixin").attr("href");
var cururl = location.href;
var omiao = $.trim($("div.neirong").text().substring(0, 100)) + "......"; var otitle = $.trim($("div.zhengwen ul.title h3").html());
var lk;
var flink = $('div.neirong img').eq(0).attr('src'); if (typeof flink == 'undefined') {
flink = '';
}
//当内容中没有图片时,设置分享图片为网站logo
if (flink == '') {
lk = 'http://' + window.location.host + '/static/logo/image/yizhanche.png';
}
//如果是上传的图片则进行绝对路径拼接
if (flink.indexOf('/uploads/') != -1) {
lk = 'http://' + window.location.host + flink;
}
//百度编辑器自带图片获取
if (flink.indexOf('ueditor') != -1) {
lk = 'http://' + window.location.host + flink;
} var newoweibourl = oweibourl + "url=" + cururl + "?sharesource=weibo&title=" + otitle + "&pics=" + lk +
"&appkey=3254906705";
var newoqqurl = oqqurl + "url=" + cururl + "?sharesource=qzone&title=" + otitle + "&pics=" + lk + "&summary=" +
omiao + "&desc=一站车,一站式购车平台";
var newoweixinurl = oweixinurl + "url=" + cururl + "&pics=" + lk; $("a.toweibo").attr("href", newoweibourl);
$("a.toqq").attr("href", newoqqurl);
$("a.toweixin").attr("href", newoweixinurl);
}

结果:可以实现分享,如下:

微博分享:

qq 分享:

微信分享:先弹出一个二维码,然后使用微信扫面二维码,查看分享内容

以上,就可以实现分享了。如果谁有更好的方法,请留言,大家相互学习一下~~~

a 标签实现分享功能的更多相关文章

  1. 05showLoading配置和 <text>标签的坑 如何发送请求 分享功能和懒加载

    14-电影-列表-需求分析 小程序里面取数据 没有冒号这么一说 加载动画 在对应页面 js文件中 showLoading你可以去看他的配置     // wx.showLoading() 应用在让用户 ...

  2. 微信分享功能引入页面-控制分享时候调用的标题、图片、url和微信按钮隐藏显示控制

    1.设置分享调用的标题.图片.url预览. 2.控制右上角三个点按钮的隐藏显示(和底部工具栏的显示隐藏--未测试). 3.判断网页是否在微信中被调用. <!doctype html> &l ...

  3. react native一键分享功能实现&原理和注意点(支持微信、qq、新浪微博等)

    目前手机使用的一键分享SDK比较主流的有两个:一个是ShareSDK,另一个是友盟分享. 又因为友盟功能比较多且比较全,比如说友盟统计.友盟推送等,所以本文重点介绍的是友盟分享功能在rn上的应用以及要 ...

  4. 通过JiaThis API接口自定义分享功能按钮实现分享功能本地化

    http://www.mdaima.com/jingyan/20.html 最早李雷博客采用的是百度分享插件,为此还发过博文讲解如何在一个页面调用多个按钮分享不同的文章,感兴趣的朋友可以在本站搜索一下 ...

  5. [Xcode 实际操作]八、网络与多线程-(24)社会化分享功能开发包的安装和配置:微信、QQ、微博

    目录:[Swift]Xcode实际操作 本文将演示如何在开放平台注册应用,并获得相关的密钥信息,用于实现后面文章的微博分享功能. 一.新浪微博开放平台 [登录]->[微服务]->[粉丝服务 ...

  6. iOS快速集成友盟社会化分享功能(v6.1.1)

    1.  U-Share SDK集成 1.1 下载U-Share SDK 通过iOS社会化组件选择所需的社交平台后进行下载,下载链接http://dev.umeng.com/social/ios/sdk ...

  7. Android中使用ShareSDK集成分享功能

    引言      现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了 ...

  8. 微信分享ios设备没有分享图标安卓有分享图标 (分享功能没有问题)

    解决方案:去除 var sharedata = { title: $("#shareTitle").val(), desc: $("#shareContent" ...

  9. 第三方登录分享功能-ShareSDK for iOS适配问题记录

    最近app里需要添加第三方授权登陆和分享的功能,选择了ShareSDK,参考了ShareSDK文档对该SDK进行了适配,但遇到了一些问题 1.问题:分享功能点击不跳转  原因:适配iOS9添加白名单 ...

随机推荐

  1. iTrash for Mac(卸载工具)破解版含注册机

    iTrash for Mac是一款专为Mac用户打造非常好用的卸载工具,itrash mac版简单好用,只需要把需要卸载的程序的拖拽到iTrash Mac版窗口内就可以删除应用程序.现为大家带来itr ...

  2. centos7镜像文件

    1.打开网址https://www.centos.org/download/2.点击Minimall ISO 按钮  3.选择aliyun地址 4.centos版本介绍 在CentOS官方网站上,Ce ...

  3. 多线程之BlockingQueue中 take、offer、put、add的一些比较

    一.概述: BlockingQueue作为线程容器,可以为线程同步提供有力的保障.   二.BlockingQueue定义的常用方法 1.BlockingQueue定义的常用方法如下:   抛出异常 ...

  4. himm的使用

    1.设置管脚复用 himm 0x200F0100 1 himm 0x200F0104 1 2.设置GPIO_DIR himm 0x201C0400 0xff 3.设置GPIO_DATA himm 0x ...

  5. day02格式化输出等

    1.格式化输出     format % 占位符     %s:str, %d: dight, %f: float     字符串多行用三个单引号或三个双引号     %%5,百分之五,转义字符%.想 ...

  6. 安装rpm

    剩余 gcc-c++-3.4.6-3.1.x86_64.rpm elfutils-libelf-devel-0.97-5.x86_64.rpm glibc-2.3.4-2.41.x86_64.rpm ...

  7. excel表格公式无效、不生效的解决方案及常见问题、常用函数

    1.表格公式无效.不生效 使用公式时碰到了一个问题,那就是公式明明已经编辑好了,但是在单元格里不生效,直接把公式显示出来了,网上资料说有4种原因,但是我4种都不是,是第5种原因,如下图: 这种情况是由 ...

  8. mybatis中大于等于小于等于的写法

    标准写法如下: 第一种写法(1): 原符号 < <= > >= & ' "替换符号 < <= > >= & &apos ...

  9. Windows硬链接 软链接 符号链接 快捷方式

    http://blog.nsfocus.net/shortcuthard-linkjunction-pointsymbolic-link/ Windows支持4种”链接”机制,分别是shortcut. ...

  10. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...