复制到剪贴板 - 不适用于FF,Chrome

Naj*_*aju 10 html javascript cross-browser

我使用下面提到的javascript将文本复制到剪贴板.它在IE中工作,但不适用于Firefox和Chrome.

请指教我,有什么问题?

   function setDataToclipboard() 
{

var str=document.getElementById("populatedString").value; 

if (window.clipboardData && clipboardData.setData) {
    clipboardData.setData("Text", str);
    alert("Copied!");
}
}
Run Code Online (Sandbox Code Playgroud)

Min*_*hev 9

剪贴板操作不是跨浏览器.对于跨浏览器解决方案,您需要闪存.

看看这个库https://github.com/jonrohan/ZeroClipboard

您可以像这样使用ZeroClipboard:

<button id="my-button" data-clipboard-text="Copy me!">Copy to Clipboard</button>
<script>
    var clip = new ZeroClipboard(document.getElementById('my-button'));
</script>
Run Code Online (Sandbox Code Playgroud)

单击按钮时,文本Copy me!将被放入剪贴板.

有关详细说明,请查看库的API https://github.com/jonrohan/ZeroClipboard/blob/master/docs/instructions.md

  • 如果cb不是一个问题怎么办?我只想在Chrome上使用非闪存解决方案,因为我的工作地点非常聪明,只能使用最好的解决方案. (2认同)

Dav*_*ave 7

我认为window.clipboardData只是IE浏览器.访问剪贴板是一个安全问题,因此无法在FF或Chrome中轻松完成.

请参阅此主题:如何使用JavaScript复制到剪贴板?


Que*_*tin 6

请参阅文档clipboardData,特别是以下部分:

这里没有适用的标准.

您正在使用专有的Microsoft gubbins,因此不应期望它可以在其他浏览器上运行.

有关访问剪贴板的跨浏览器技术,请参阅此问题.

一个访问剪贴板的标准草案,但我不知道它在野外的任何实现(并且canIuse也不知道任何).


Gom*_*mes 4

所有浏览器都实现了 w3c 剪贴板 api http://caniuse.com/#feat=clipboard