a 标签实现分享功能
在网页中,经常会用到分享功能,例如分享到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 标签实现分享功能的更多相关文章
- 05showLoading配置和 <text>标签的坑 如何发送请求 分享功能和懒加载
14-电影-列表-需求分析 小程序里面取数据 没有冒号这么一说 加载动画 在对应页面 js文件中 showLoading你可以去看他的配置 // wx.showLoading() 应用在让用户 ...
- 微信分享功能引入页面-控制分享时候调用的标题、图片、url和微信按钮隐藏显示控制
1.设置分享调用的标题.图片.url预览. 2.控制右上角三个点按钮的隐藏显示(和底部工具栏的显示隐藏--未测试). 3.判断网页是否在微信中被调用. <!doctype html> &l ...
- react native一键分享功能实现&原理和注意点(支持微信、qq、新浪微博等)
目前手机使用的一键分享SDK比较主流的有两个:一个是ShareSDK,另一个是友盟分享. 又因为友盟功能比较多且比较全,比如说友盟统计.友盟推送等,所以本文重点介绍的是友盟分享功能在rn上的应用以及要 ...
- 通过JiaThis API接口自定义分享功能按钮实现分享功能本地化
http://www.mdaima.com/jingyan/20.html 最早李雷博客采用的是百度分享插件,为此还发过博文讲解如何在一个页面调用多个按钮分享不同的文章,感兴趣的朋友可以在本站搜索一下 ...
- [Xcode 实际操作]八、网络与多线程-(24)社会化分享功能开发包的安装和配置:微信、QQ、微博
目录:[Swift]Xcode实际操作 本文将演示如何在开放平台注册应用,并获得相关的密钥信息,用于实现后面文章的微博分享功能. 一.新浪微博开放平台 [登录]->[微服务]->[粉丝服务 ...
- iOS快速集成友盟社会化分享功能(v6.1.1)
1. U-Share SDK集成 1.1 下载U-Share SDK 通过iOS社会化组件选择所需的社交平台后进行下载,下载链接http://dev.umeng.com/social/ios/sdk ...
- Android中使用ShareSDK集成分享功能
引言 现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了 ...
- 微信分享ios设备没有分享图标安卓有分享图标 (分享功能没有问题)
解决方案:去除 var sharedata = { title: $("#shareTitle").val(), desc: $("#shareContent" ...
- 第三方登录分享功能-ShareSDK for iOS适配问题记录
最近app里需要添加第三方授权登陆和分享的功能,选择了ShareSDK,参考了ShareSDK文档对该SDK进行了适配,但遇到了一些问题 1.问题:分享功能点击不跳转 原因:适配iOS9添加白名单 ...
随机推荐
- 使用iSCSI服务部署网络存储
- sql server 与 sql server compact 互相数据导入
从SQL Server 导出数据到 Sql Compact 使用 Sql Server Compact Tool box 从SQL Server Comapct 导出数据到 Sql Server 使 ...
- MySQL Hardware--CentOS 6修改CPU性能模式
cpufrequtils命令 ## 安装: yum install cpufrequtils ## 查看CPU信息: cpufreq-info -m 输出CPU信息为: analyzing CPU : ...
- Java中的锁分类与使用
1. Java锁的种类 在笔者面试过程时,经常会被问到各种各样的锁,如乐观锁.读写锁等等,非常繁多,在此做一个总结.介绍的内容如下: 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/ ...
- 页面滚动图片等元素动态加载插件jquery.scrollLoading.js
如果一个网页很长,那么该页面的加载时间也会相应的较长.而这里给大家介绍的这个jQuery插件scrollLoading的作用则是,对页面元素进行动态加载,通俗的说就是滚到哪就加载到哪,屏幕以下看不见的 ...
- 友善RK3399/NanoPC-T4开发板wiringPi的C语言访问GPIO外设实例讲解 -【申嵌视频】
1 wiringPi简介 wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库.SPI库.UART库和软件PWM库等,由于w ...
- Log4j配置发邮件功能
# 发送日志到指定邮件log4j.appender.mail=org.apache.log4j.net.SMTPAppenderlog4j.appender.mail.Threshold=DEBUGl ...
- Winform 界面执行耗时操作--UI卡顿假死问题
UI卡顿假死问题 误区1:使用不同的线程操作UI控件和耗时操作(即,跨线程操作UI控件CheckForIllegalCrossThreadCalls = false;), 注意:此处只是为了记录... ...
- lnmp环境 swoole聊天室
pecl install swoole 安装php扩展swooleservice php-fpm restart 重启php服务whereis php.ini 查看php.ini的位置 查看文件是否配 ...
- Struts2单文件上传原理及示例
一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里 ...