使用FireFox,Safari和Chrome在剪贴板上复制/放置文本
在Internet Explorer中,我可以使用clipboardData对象来访问剪贴板。 我如何在FireFox,Safari和/或Chrome中执行此操作?
现在有一种方法可以在大多数现代浏览器中轻松使用
document.execCommand('copy');
这将复制当前选定的文本。 您可以使用选择textArea或输入字段
document.getElementById('myText').select();
为了不可见地复制文本,您可以快速生成textArea,修改框中的文本,选中它,复制它,然后删除textArea。 在大多数情况下,这个文本区域甚至不会闪到屏幕上。
出于安全原因,如果用户采取某种行动(即单击按钮),浏览器将只允许您复制。 一种方法是将一个onClick事件添加到一个html按钮,该按钮调用复制文本的方法。
一个完整的例子看起来像
<html>
<head>
<title>copy test</title>
</head>
<body>
<button onclick="copier()">Copy</button>
<textarea id="myText">Copy me PLEASE!!!</textarea>
<script>
function copier(){
document.getElementById('myText').select();
document.execCommand('copy');
}
</script>
</body>
</html>
出于安全原因,Firefox不允许您在剪贴板上放置文本。 但是,使用Flash有一个解决方法。
function copyIntoClipboard(text) {
var flashId = 'flashId-HKxmj5';
/* Replace this with your clipboard.swf location */
var clipboardSWF = 'http://appengine.bravo9.com/copy-into-clipboard/clipboard.swf';
if(!document.getElementById(flashId)) {
var div = document.createElement('div');
div.id = flashId;
document.body.appendChild(div);
}
document.getElementById(flashId).innerHTML = '';
var content = '<embed src="' +
clipboardSWF +
'" FlashVars="clipboard=' + encodeURIComponent(text) +
'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
document.getElementById(flashId).innerHTML = content;
}
唯一的缺点是这需要启用Flash。
源目前已经死亡:http://bravo9.com/journal/copying-text-into-the-clipboard-with-javascript-in-firefox-safari-ie-opera-292559a2-cc6c-4ebf-9724-d23e8bc5ad8a/(它的Google缓存也是如此)
联机电子表格挂钩Ctrl + C,Ctrl + V事件并将焦点转移到隐藏的TextArea控件,并将其内容设置为所需的新剪贴板内容以进行复制,或在事件完成粘贴后读取其内容。
另请参阅使用Javascript可以在Firefox,Safari和Chrome中阅读剪贴板吗?
链接地址: http://www.djcxy.com/p/3321.html上一篇: Copy / Put text on the clipboard with FireFox, Safari and Chrome