谷歌浏览器 怎么用js复制东西到剪贴板

JavaScript015

谷歌浏览器 怎么用js复制东西到剪贴板,第1张

代码如下:

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]