手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >跨浏览器开发经验总结(四) 怎么写入剪贴板
跨浏览器开发经验总结(四) 怎么写入剪贴板
摘要:IE、Firefox可以支持JavaScript往剪贴板写入内容IE可以很方便的支持剪贴板内容写入命令,可以使用execCommand(),...

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方法,继续执行复制后的工作

【跨浏览器开发经验总结(四) 怎么写入剪贴板】相关文章:

JavaScript获得指定对象大小的方法

理解javascript中的with关键字

JS实现动态生成表格并提交表格数据向后端

JQuery控制Radio选中方法分析

检测用户按键

一些很实用且必用的小脚本代码第1/5页

javascript组合使用构造函数模式和原型模式实例

Javascript中setTimeOut和setInterval的定时器用法

在JavaScript应用中使用RequireJS来实现延迟加载

javascript实现十秒钟后注册按钮可点击的方法

精品推荐
分类导航