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添加白名单 ...
随机推荐
- [双系统linux] ----双系统切换导致系统时间错误
安装了linux双系统以后,发现每次双系统切换以后系统时间总会错误. 原因:Linux和win7(win10)双系统时间错误问题 时间相差8小时 MAC/linux 将系统硬件时间看待为UTC, 即U ...
- 给jumpserver双机配置glusterfs共享复制卷
为什么要使用glusterfs呢. 本身Haproxy+Keepalived对jumpserver进行了负载均衡和反向代理.但是真实的视频只会存储在一个节点上 否则播放视频的时候会出现找不到的情况 为 ...
- 机器学习实战ch04 关于python版本所支持的文本格式问题
函数定义中: def spamTest(): docList=[]; classList = []; fullText =[] for i in range(1,26):# print('cycle ...
- java获取客户端ip地址工具类
public class IpUtils { private static final String[] HEADERS = { "X-Forwarded-For", " ...
- 7.12 vowels.c 程序
7.12 vowels.c 程序 #vowels.c -- 使用多重标签 #include <stdio.h> int main(void) { char ch; int a_ct, e_ ...
- Realm 处理List<String> 问题 Type parameter 'java.lang.String' is not within its bound; should implement 'io.realm.RealmModel
public class InitAppBean extends RealmObject { private String sapling; private String logistics; pri ...
- JeeCMS v7 SSRF导致任意文件写入
前言: 学习大佬的思路. from先知社区:https://xz.aliyun.com/t/4809 00X1: 是/ueditor/getRemoteImage.jspx 接口 通过构造upfile ...
- dns相关
一 用于dns, whois相关的网站 1 http://viewdns.info/iphistory 2 http://bgp.he.net/ 3 https://whois.aliyun.com/ ...
- Java代码片段——向文件末尾添加内容
BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(”filename”, true)); out.wri ...
- 生信基础知识【04】GO和pathway分析
非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ...