JS复制内容到剪贴板: 兼容IE、Firefox、Chrome、Safari所有浏览器
function copyToClipboard(txt) {
if(window.clipboardData)
{
window.clipboardData.clearData()
window.clipboardData.setData("Text",txt)
alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")
}
else if(navigator.userAgent.indexOf("Opera") != -1)
{
window.location = txt
alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")
}
else if (window.netscape)
{
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
}
catch (e)
{
alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'")
}
var clip = Components.classes['@mozilla.org/widget/clipboard1'].createInstance(Components.interfaces.nsIClipboard)
if (!clip) return
var trans = Components.classes['@mozilla.org/widget/transferable1'].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-string1"].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 false
clip.setData(trans,null,clipid.kGlobalClipboard)
alert("网址复制成功!快用Ctrl+V粘贴到QQ,MSN中发送给好友吧!")
}
}
copyToClipboard('ABCD')
这些代码都是一样的,不存在原创与复制
代码如下:
很多页面都是禁止copy的,那么通过浏览器事件,是不是可以访问到粘贴板?查了下资料,IE/Chrome/Firefox都支持oncopy/onpaste/oncut事件,虽然不是在所有元素上都支持。但是这里通过事件的event应该可以访问到用户复制了什么内容,并修改Data。动手实验了下,通过console.debug查看chrome和firefox的event对象,会发现event里面有一个clipboardData对象,所以后面的事情就不难了。看如下Firefox的截图就知道了:
参考资料
实现JS复制、粘贴,Chrome/Firefox下可用.csdn[引用时间2018-1-3]