有一种方法可以使用flash ...在网页上欺骗“复制到剪贴板”功能......
但是有没有办法以 PURE javascript的方式(但仍然是跨现代浏览器)?
因为即使adobe也把注意力放在flash上,而更多地关注html5 ......
答案 0 :(得分:5)
出于安全考虑,大多数浏览器不允许修改剪贴板(IE除外)。
使跨浏览器兼容的复制到剪贴板功能的唯一方法是使用Flash。
现在您可以选择要复制的所有数据,并要求用户单击 CTRL + C 。
答案 1 :(得分:3)
目前无法做到交叉 -browser(出于安全原因经常被禁用)。在旧版浏览器中没有这样的功能(安全问题)或经常必须手动启用...但在较旧的浏览器中,使用 Flash 进行此操作的可能性很高......
2016年更新
仍然不是移动跨浏览器,但支持新主流浏览器的桌面版本...
现在,Mozilla开发人员文档对Document.execCommand()有了更好的描述,特别是" copy"命令:
将当前选择复制到剪贴板。有条件的 此行为从一个浏览器启用改变,并且具有 随着时间的推移而发展。 检查兼容性表以确定您是否 可以在你的情况下使用它。
2017-03-05 (桌面和移动设备):边缘 - 基本支持&复制/剪切:是,Chrome复制/剪切支持更改为43。
将来有可能在其他浏览器中以相同的方式完成此操作:
在Firefox 41之前,需要启用剪贴板功能 user.js首选项文件。请参阅Mozilla首选项简要指南 更多信息。如果命令未被支持或启用, execCommand引发异常而不是返回false。
在Firefox 41及更高版本中,默认情况下启用剪贴板功能 任何能够弹出窗口的事件处理程序(半信任的 脚本)。强>
这意味着,任何支持复制/剪切的浏览器都很有可能只对用户操作执行 。例如:动态调用复制命令赢得了#39 ; t work,但是如果绑定到click事件,它就会起作用,即使事件没有被阻止(例如导航)(Chrome测试)。
以下是Google发表的一篇有趣文章,同时也介绍了Selection API: https://developers.google.com/web/updates/2015/04/cut-and-copy-commands
顺便说一句: 当然,您可以预先选择文本并要求用户单击 CTRL + C ,但您将失去用户体验。
答案 2 :(得分:-2)
这是你可以在IE中实现它的一种方法......
<body>
<textarea rows="5" cols="20" wrap="hard" onblur="CopyToClipboard(this)"></textarea>
</body>
<script language="JavaScript">
function CopyToClipboard(text) {
Copied = text.createTextRange();
Copied.execCommand("Copy");
}
</script>