Heim > Web-Frontend > js-Tutorial > 跨浏览器开发经验总结(四) 怎么写入剪贴板_javascript技巧

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

WBOY
Freigeben: 2016-05-16 18:27:22
Original
1207 Leute haben es durchsucht
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方法,继续执行复制后的工作
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage