• js页面文字选中后分享到新浪微博实现


    demo
    您可以狠狠地点击这里:js文字选中分享到新浪微博demo

    方法与代码

    选中即分享的功能看上去比较高级,其实实现是相当简单的。其中的会让人头大,一般人也不感兴趣的原理这里就直接跳过。这个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);	
    		}
    	};
    };
    

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

    假设新浪微博分享图标的HTML如下:

    <img id="imgSinaShare" class="img_sina_share" title="将选中内容分享到新浪微博" src="http://simg.sinajs.cn/blog7style/images/common/share.gif" />

    则直接:

    $sinaMiniBlogShare(document.getElementById("imgSinaShare"));

    就实现了选中文字分享到新浪微博的功能了。

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

    by zhangxinxu from http://www.zhangxinxu.com
    本文地址:http://www.zhangxinxu.com/wordpress/?p=1428

  • 相关阅读:
    【设计模式】模板模式
    【设计模式】策略模式
    【设计模式】空对象模式
    【设计模式】状态模式
    【设计模式】观察者模式
    【设计模式】备忘录模式
    【设计模式】中介者模式
    【设计模式】迭代器模式
    【设计模式】解释器模式
    【设计模式】命令模式
  • 原文地址:https://www.cnblogs.com/leejersey/p/3476457.html
Copyright © 2020-2023  润新知