3

搜索以编程方式选择 WebView 内容的 Javascript 方法时,我遇到了这个 Javascript 代码片段,它在窗口对象中名为 clipboardData 的成员中使用了一个名为 setData() 的方法。

但是当我试图在Javascript 参考中找到它的文档时,clipboardData 无处可寻。

为什么?

window.clipboardData 不是 Javascript 或 DOM 的一部分吗?

4

2 回答 2

7

不,它不是任何标准的一部分。除了 IE,出于安全考虑,大多数浏览器都不允许剪贴板访问(您不希望任意网页读取您放入剪贴板的敏感信息)。

于 2011-03-11T21:16:17.320 回答
2

我相信只有 IE 允许您访问剪贴板。其他浏览器的旧版本曾经使用过,但默认情况下已将其作为安全措施关闭。用户可以通过设置/选项/首选项显式打开它,但这在大多数情况下显然并不理想。

解决方法是在页面上使用 Flash 对象。由于 Flash 10 添加了更多安全层,因此现在还需要用户与 Flash 对象进行交互(例如单击而不是说 onload 事件)。

我从答案底部写得很好的文章中找到并实施了出色的工作。他更详细地解释了这个问题,并提供了 Adob​​e/Mozilla 官方声明的链接,并提供了一个可用和可下载的示例,以及 fla 的源代码。如果您想重新设计/重新设计他的按钮,这很方便。

我已经使用最新的(截至 2011 年 7 月 7 日)Chrome/Safari/RockMelt/FF/IE7/IE8/IE9 和 MacOSX(SL) Safari/FF 在 Windows7 上成功测试。

唯一的缺点是它使用闪存,除了一些移动平台和一小部分(ab)普通用户外,它大部分都很好。我还发现您需要通过 http(网络服务器)访问,通过文件系统打开和使用演示页面(即在资源管理器中双击 html 文件)将不起作用。

感谢分享拉胡尔,很棒的工作。

http://www.rahulsingla.com/blog/2010/03/cross-browser-approach-to-copy-content-to-clipboard-with-javascript

于 2011-07-07T00:51:11.257 回答