作家
登录

跨浏览器开发经验总结(四) 怎么写入剪贴板

作者: 来源:www.28hudong.com 2013-03-30 01:35:28 阅读 我要评论

IE、 Firefox可以支持JavaScript往剪贴板写入内容 IE可以很方便的支持剪贴板内容写入命令,可以使用execCommand(),也可以利用window.clipboardData。 使用execCommand,需要先从页面选中要复制到剪贴板的内容,如以下代码: 复制代码 代码如下: var doc = obj.createTextRange(); doc.select(); doc.execCommand('copy'); 使用window.clipboardData的方法如下,代码中同时实现了Firefox下写入剪贴板的功能: 复制代码 代码如下: if(window.clipboardData) //IE { window.clipboardData.clearData(); window.clipboardData.setData("Text", txt); } else if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert("please visit 'about:config' and set signed.applets.codebase_principal_support as 'true'"); //提示用户开放浏览器的安全性设置 } var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); var copytext = txt; str.data = copytext;        trans.setTransferData("text/unicode",str,copytext.length*2); var clipid = Components.interfaces.nsIClipboard; if (!clip) return;        clip.setData(trans,null,clipid.kGlobalClipboard); } 以上代码可以实现在IE、Firefox中往剪贴版写入自定义内容,但是opera和webkit内核浏览器对安全性要求更高,不支持这种javascript直接操作剪贴板内容的方式,只能通过别的脚本语言“曲线救国”了。 Opera 、Safari、Chrome使用ActionScript往剪贴板写入内容 具体的实现可以将原本的动作按钮用flex或flash实现其外观,替换原来的图片或文字按钮,然后在点击该按钮时,执行以下ActionScript脚本: //从浏览器环境中获得需要写入到剪贴板的内容 var s:String = String(ExternalInterface.call("getURL4Clipboard")); //getURL4Clipboard是页面上return剪贴板内容的javascript方法 //设置剪贴板内容 System.setClipboard(s); //调用完成设置剪贴板内容后需要继续的JavaScript函数,比如提示用户信息等 ExternalInterface.call("copyURLCompleted"); //copyURLCompleted是页面上的javascript方法,继续执行复制后的工作

  推荐阅读

  jQuery实现的类flash菜单效果代码

先来看看效果:http://demo.jb51.net/js/jquery_flash/demo.htm因为下面的menu和上面的logo的实现原理一样,为了简化起见,我们这里只拿logo部分的代码来说明一下原理: HTML代码: 复制代码 代码如下: <a id="log>>>详细阅读


本文标题:跨浏览器开发经验总结(四) 怎么写入剪贴板

地址:http://www.17bianji.com/kaifa2/JS/26394.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)