jav*_*web 7 javascript clipboard
有一种方法可以使用flash在网页上欺骗"复制到剪贴板"功能...
但有没有办法以纯粹的 JavaScript方式(但仍然是跨现代浏览器)?
因为即使adobe也把注意力放在flash上,同时更多地关注html5 ......
目前还没有办法做到跨浏览器(通常出于安全原因被禁用)。在较旧的浏览器中,没有此类功能(安全问题),或者通常必须手动打开...但在较旧的浏览器中,很有可能使用Flash来执行此操作...
更新 2016
仍然不是移动跨浏览器,但在主要浏览器的新桌面版本中受支持...
Mozilla 开发人员文档现在对Document.execCommand()特别是“复制”命令
有了更好的描述:
将当前选择复制到剪贴板。启用此行为的条件因浏览器而异,并且 随着时间的推移而演变。检查兼容性表以确定您是否可以在您的情况下使用它。
2016-08 更新:当前所有主要桌面浏览器都采用复制/剪切!
Clipboard APIdocument.execCommand()被标记为已过时,但是,
它应该被取代Clipboard API
如果您出于某种原因需要支持 IE9+,则将来需要同时实现这两者。
此 API 旨在取代使用 document.execCommand() 访问剪贴板。
请注意,它仍在开发中,并且有一些实现细节 - 请参阅 MDN 链接以获取兼容性表中的更多信息
来自 MDN Clipboard.writeText() 的示例:
navigator.clipboard.writeText("<empty clipboard>").then(function() {
/* clipboard successfully set */
}, function() {
/* clipboard write failed */
});
Run Code Online (Sandbox Code Playgroud)
MDN 兼容性表:截至 2021-04-30

将来有可能在其他浏览器中以同样的方式完成此操作:
在 Firefox 41 之前,需要在 user.js 首选项文件中启用剪贴板功能。有关详细信息,请参阅 Mozilla 首选项简要指南。如果该命令不受支持或启用,则 execCommand 将引发异常而不是返回 false。
在 Firefox 41 及更高版本中,默认情况下,在任何能够弹出窗口(半可信脚本)的事件处理程序中启用剪贴板功能。
这意味着,任何支持复制/剪切的浏览器很可能只会在用户操作时执行此操作。例如:即时调用复制命令不起作用,但是如果绑定到单击事件,即使事件未被阻止(例如导航)(Chrome 测试),它也可以工作。
这里有一些来自 Google 的有趣文章,还描述了Selection API: https://developers.google.com/web/updates/2015/04/cut-and-copy-commands
顺便说一句:当然,您可以预先选择文本并要求用户单击CTRL+ C,但您会失去用户体验。
出于安全原因,大多数浏览器不允许修改剪贴板(IE除外).
使复制到剪贴板功能跨浏览器兼容的唯一方法是使用Flash.
现在,您可以选择要复制的所有数据,并要求用户单击CTRL+ C.
| 归档时间: |
|
| 查看次数: |
14038 次 |
| 最近记录: |