我使用下面提到的javascript将文本复制到剪贴板。它在IE中工作,但不适用于Firefox和Chrome。
请告诉我,有什么问题?
function setDataToclipboard()
{
var str=document.getElementById("populatedString").value;
if (window.clipboardData && clipboardData.setData) {
clipboardData.setData("Text", str);
alert("Copied!");
}
}
答案 0 :(得分:10)
剪贴板操作不是跨浏览器。对于跨浏览器解决方案,您需要闪存。
查看此库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>
当您点击按钮时,文本Copy me!
将被放入剪贴板。
有关详细说明,请查看库的API https://github.com/jonrohan/ZeroClipboard/blob/master/docs/instructions.md
答案 1 :(得分:7)
我认为window.clipboardData只是IE浏览器。访问剪贴板是一个安全问题,因此无法在FF或Chrome中轻松完成。
答案 2 :(得分:5)
请参阅the documentation for clipboardData
,特别是以下部分:
此处没有适用的标准。
您正在使用专有的Microsoft gubbins,因此不应期望它可以在其他浏览器上运行。
有关访问剪贴板的跨浏览器技术,请参阅this question。
有a draft of a standard for accessing the clipboard但我不知道它在野外的任何实现(和canIuse doesn't know of any either)。
答案 3 :(得分:4)
w3c剪贴板api已由所有浏览器http://caniuse.com/#feat=clipboard
实施答案 4 :(得分:4)
我最近在Chrome和其他浏览器上遇到了同样的问题。但是,最近,我发现此代码在某些浏览器中的可信范围内工作:
clipboard = e.originalEvent.clipboardData;
clipboard.setData('text/plain', plainData);
clipboard.setData('text/html', htmlData);
注意:在这种情况下,e是复制和/或剪切事件。此事件会触发,并可在onCopy()
或onCut()
操作中检索。
此代码已确认可在以下浏览器的最新版本中使用:
Internet Explorer似乎与window.clipboardData.setData
配合使用,但请记住,IE剪贴板只接受'text'
和'url'
数据。
虽然以下浏览器可以访问系统剪贴板对象,但这些浏览器无法使用clipboard.setData
将数据设置到剪贴板中:
UntrustedDragDrop
对象提供给剪贴板而不是...... 答案 5 :(得分:0)
我发现这些在Chrome或FF中不起作用:
type =“ hidden”
<input id="e" type="hidden" value="my text to copy to clipboard" />
style =“ display:none;”
<input id="e" type="text" style="display:none;" value="my text to copy to clipboard" />
以此欺骗浏览器
style =“ position:absolute; top:-30;”
<input id="e" type="text" style="position: absolute; top: -30;" value="my text" />