跨浏览器开发经验总结(四)怎么写入剪贴板
2023-06-13 09:14:18 时间
IE、Firefox可以支持JavaScript往剪贴板写入内容
IE可以很方便的支持剪贴板内容写入命令,可以使用execCommand(),也可以利用window.clipboardData。
使用execCommand,需要先从页面选中要复制到剪贴板的内容,如以下代码:
复制代码代码如下:
IE可以很方便的支持剪贴板内容写入命令,可以使用execCommand(),也可以利用window.clipboardData。
使用execCommand,需要先从页面选中要复制到剪贴板的内容,如以下代码:
vardoc=obj.createTextRange();
doc.select();
doc.execCommand("copy");
使用window.clipboardData的方法如下,代码中同时实现了Firefox下写入剪贴板的功能:
if(window.clipboardData)//IE
{
window.clipboardData.clearData();
window.clipboardData.setData("Text",txt);
}
elseif(window.netscape)
{
try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e)
{
alert("pleasevisit"about:config"andsetsigned.applets.codebase_principal_supportas"true"");
//提示用户开放浏览器的安全性设置
}
varclip=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
if(!clip)
return;
vartrans=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if(!trans)
return;
trans.addDataFlavor("text/unicode");
varstr=newObject();
varlen=newObject();
varstr=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
varcopytext=txt;
str.data=copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
varclipid=Components.interfaces.nsIClipboard;
if(!clip)
return;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
以上代码可以实现在IE、Firefox中往剪贴版写入自定义内容,但是opera和webkit内核浏览器对安全性要求更高,不支持这种javascript直接操作剪贴板内容的方式,只能通过别的脚本语言“曲线救国”了。
Opera、Safari、Chrome使用ActionScript往剪贴板写入内容
具体的实现可以将原本的动作按钮用flex或flash实现其外观,替换原来的图片或文字按钮,然后在点击该按钮时,执行以下ActionScript脚本:
//从浏览器环境中获得需要写入到剪贴板的内容
vars:String=String(ExternalInterface.call("getURL4Clipboard"));//getURL4Clipboard是页面上return剪贴板内容的javascript方法
//设置剪贴板内容
System.setClipboard(s);
//调用完成设置剪贴板内容后需要继续的JavaScript函数,比如提示用户信息等
ExternalInterface.call("copyURLCompleted");//copyURLCompleted是页面上的javascript方法,继续执行复制后的工作
相关文章
- Android浏览器插件开发[通俗易懂]
- 基于chromium for android开发Android浏览器
- android 浏览器 开发,Android 浏览器的开发实例分享
- 浏览器扩展开发系列教程(一)
- 【说站】php文件怎么在浏览器运行
- HTML--浏览器支持参考手册
- 【CSS】轮播图案例开发 ( 基本设置 | 子绝父相 | 浏览器水平居中 | 圆角设置 | 绝对定位居中设置 )
- [android] WebView自定义浏览器详解手机开发
- Linux浏览器:解锁高效的内核体验(linux浏览器内核)
- 基于Aura的Google Chrome浏览器Linux版已提供下载
- 开源浏览器引擎开发:Google 的人数是 Mozilla 的两倍
- 浏览器采用Redis提高速度的秘诀(浏览器redis)
- 火狐浏览器(firefox)下获得Event对象以及keyCode
- 网页和浏览器兼容性问题汇总(draft1)
- asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
- 兼容所有浏览器的js复制插件Zero使用介绍
- jQuery实现响应浏览器缩放大小并改变背景颜色
- JS打开新窗口防止被浏览器阻止的方法
- 如何创建ajax对象并兼容多个浏览器
- css与javascript跨浏览器兼容性总结