一、功能简述 正是微博如火如荼的时节,其中各个微博的分享功能是网站推广产品的好东东啊,此时如何方便快捷的使用微博的分享功能就显得比较重要了。我的站点每篇文章的底部有一些分享的链接: 不过我觉得这些分享基本上就是聋子的耳朵摆设。除非这篇文章惊天地、泣鬼

一、功能简述

正是微博如火如荼的时节,其中各个微博的分享功能是网站推广产品的好东东啊,此时如何方便快捷的使用微博的分享功能就显得比较重要了。我的站点每篇文章的底部有一些分享的链接:

零度科技

不过我觉得这些分享基本上就是聋子的耳朵——摆设。除非这篇文章惊天地、泣鬼神,痛彻心扉,穿越前世今生。但是,如果有更加方便快捷的分享方式,这种冷淡得让人结冰的场面或许就不会经常出现。 内容来自www.00isp.com

一般翻译软件都有划词翻译功能,例如有道桌面词典的桌面划词翻译功能:

内容来自www.00host.cn

启用后,随便选中那个软件的一段文字,就会出现类似这样子的浮动提示框:

内容来自零度科技

在web页面上,我们也是可以实现类似的效果的:划词→显示提示→分享。这就是本文要展示的内容。 内容来自www.00isp.com

二、效果与demo

随便选择一段文字,结果就会出现个新浪的怪眼睛logo,如下图:

零度科技提供技术支持

然后,点击那个晃啊晃的猥琐的眼睛,就实现了选中文字分享到新浪微博的功能啦——会打开个新页面——如下效果:

内容来自www.00host.cn

是不是分享起来很简单很方便啊!  内容来自www.00isp.com

三、方法与代码

选中即分享的功能看上去比较高级,其实实现是相当简单的。其中的会让人头大,一般人也不感兴趣的原理这里就直接跳过。这个js文字选中后分享到新浪微博的功能我简单的封装了下,方法名是:$sinaMiniBlogShare,当然,您不喜欢可以换掉,甚至不要,此方法完整代码如下: 零度科技提供技术支持

var $sinaMiniBlogShare = function(eleShare, eleContainer) {
var eleTitle = document.getElementsByTagName("title")[0];
eleContainer = eleContainer || document;
var funGetSelectTxt = function() {
var txt = "";
if(document.selection) {
txt = document.selection.createRange().text;   // IE
} else {
txt = document.getSelection();
}
return txt.toString();
};
eleContainer.onmouseup = function(e) {
e = e || window.event;
var txt = funGetSelectTxt(), sh = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
var left = (e.clientX - 40 < 0) ? e.clientX + 20 : e.clientX - 40, top = (e.clientY - 40 < 0) ? e.clientY + sh + 20 : e.clientY + sh - 40;
if (txt) {
eleShare.style.display = "inline";
eleShare.style.left = left + "px";
eleShare.style.top = top + "px";
} else {
eleShare.style.display = "none";
}
};
eleShare.onclick = function() {
var txt = funGetSelectTxt(), title = (eleTitle && eleTitle.innerHTML)? eleTitle.innerHTML : "未命名页面";
if (txt) {
window.open('http://v.t.sina.com.cn/share/share.php?title=' + txt + '→来自页面"' + title + '"的文字片段&url=' + window.location.href);
}
};
};copyright www.00isp.com

可以看到$sinaMiniBlogShare方法有两个参数,eleShare和eleContainer,其中,前一个参数是必须的,指的是文字选中后出现的浮动层元素(在本文demo中就是新浪眼睛图标);后面一个参数指文字选择的容器元素,可选参数,如果不设置则指document元素,也就是整个页面文字选中都会触发分享的功能。 内容来自零度科技

假设新浪微博分享图标的HTML如下:
<img class="img_sina_share" id="imgSinaShare" title="将选中内容分享到新浪微博" alt="" src="http://simg.sinajs.cn/blog7style/images/common/share.gif" /> 内容来自零度科技

则直接:$sinaMiniBlogShare(document.getElementById("imgSinaShare")); 零度科技提供技术支持

就实现了选中文字分享到新浪微博的功能了。 内容来自www.00host.cn

这里的方法没有兼容性问题,IE之流,firefox或是chrome浏览器可以轻松分享;另外,方法原生的javascript代码,不依赖于任何库,所以,只要浏览器不禁用javascript,哪里都可以使用,真可谓方便快捷,无孔不入,网页开发,必备良药。 零度科技

四、结语及补充

其实呢,此方法不仅支持新浪微博,支持企鹅微博(腾讯微博),狐狸微博(搜狐微博),也是可以的,只要根据各个微博分享页面的API地址,将window.open()中的地址换换就可以了,我想,应该很简单的。您要是有兴致,可以把这些乱七八糟的分享都集合到一个方法中,做出插件性质的,各个网站任意分享,通过参数接口灵活控制 零度科技

零度科技原文链接:http://www.00isp.com/webdesign/javascript/201202/1172.html

一、功能简述 正是微博如火如荼的时节,其中各个微博的分享功能是网站推广产品的好东东啊,此时如何方便快捷的使用微博的分享功能就显得比较重要了。我的站点每篇文章的底部有一些分享的链接: 不过我觉得这些分享相关推荐

  1. 简述机器指令与微指令之间的关系_SAP Marketing Cloud功能简述(四) 线索和客户管理...

    这个系列的前三篇文章Grace Dong已经给大家带来了下面的内容: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Clou ...

  2. SAP Marketing Cloud功能简述(五) : 销售计划管理

    Grace前四篇介绍SAP Marketing Cloud的文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud ...

  3. SAP Marketing Cloud功能简述(四) : 线索和客户管理

    这个系列的前三篇文章Grace Dong已经给大家带来了下面的内容: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Clou ...

  4. SAP Marketing Cloud功能简述(三) 营销活动内容设计和产品推荐

    Grace的前两篇文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud功能简述(二) : Target Grou ...

  5. SAP Marketing Cloud功能简述(二) Target Group

    这个系列的第一篇文章 SAP Marketing Cloud功能简述(一) : Contacts和Profiles,我向大家介绍了SAP Marketing Cloud里的Contacts和Profi ...

  6. FEC生鲜配送软件8大功能简述_功能列表

    筷云信息专为生鲜配送行业的企业提供独立部署的生鲜配送解决方案,筷云信息的生鲜配送系统覆盖企业上游的从采购到入库,下游的下单.分拣.配送到结算等整个环节.全流程数字化帮助生鲜配送企业互联网转型,有效提高 ...

  7. MathNet.Numerics主要类功能简述

    MathNet.Numerics主要类功能简述 MathNet.Numerics是一个.NET的开源数学库,包含了.NET平台上的面向对象数字计算的基础类.类似 NMath ,但 NMath 是收费的 ...

  8. 微信PC端各个数据库文件结构与功能简述 - Multi文件夹

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

  9. 微信PC端各个数据库文件结构与功能简述 - 根目录

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

最新文章

  1. [react] react组件间的通信有哪些?
  2. iOS开发之--改变系统导航的颜色,字体,还有返回样式的自定义
  3. 介绍ML.NET——面向.NET开发人员的机器学习库
  4. greenplum配置高可用_GREENPLUM介绍之数据库管理(七)- 配置数据库高可用性之master镜像 | 学步园...
  5. Java基础复习——继承机制
  6. HDU 1712 ACboy needs your help(分组背包入门题)
  7. android AChartEngine源码
  8. Java泛型:泛型的定义(类、接口、对象、方法)、使用、继承
  9. JSP从入门到精通_课堂实战视频教程
  10. 手机照片局部放大镜_往事洗照片
  11. 新手学游戏开发必知的一课
  12. Spring cloud网关gateway代理websocket报Max frame length of 65536 has been exceeded
  13. 数据结构之不相交集类
  14. 学透for循环-传统for循环与增强for循环
  15. 生活细语:送给每一个热爱生活的人
  16. 架设个人Web服务器实战(通过ADSL路由)
  17. 【一级考试专题-1】整数和均值
  18. 后端的一个刚毕业的小伙子老早完成了架构和服务端逻辑,接口洋洋洒洒列了出来。。。...
  19. 电商(3)之Dubbox框架
  20. 【0109】Linux系统监测工具sysstat介绍

热门文章

  1. 乒乓操作原理简介与设计
  2. 大学数学中的1和0、求根公式相关和待定系数法
  3. 希尔伯特曲线 java_《算法心得:高效算法的奥秘》PDF 下载
  4. 加拿大雇主担保移民,薪酬上调,就业岗位增多
  5. 火拼《俄罗斯方块》解析
  6. MySql5.6.51 免安装版下载配置
  7. 传智播客开课的第一天
  8. LeetCode 391. 完美矩形(扫描线) / 318. 最大单词长度乘积 / 563. 二叉树的坡度
  9. 按钮控件数组实现计算器界面
  10. [暗黑破坏神2]战网服务器架设