zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ubuntu远程windows桌面
    spring boot 给返回值加状态 BaseData
    spring boot 拦截异常 统一处理
    IntelliJ IDEA spring boot 远程Ddbug调试
    IntelliJ IDEA 常用插件
    spring boot 请求地址带有.json 兼容处理
    spring boot 接口返回值去掉为null的字段
    spring boot 集成disconf
    Spring boot 自定义拦截器
    Linux下安装MySQL
  • 原文地址:https://www.cnblogs.com/leejersey/p/3476457.html
Copyright © 2011-2022 走看看