【发布时间】:2010-12-21 12:09:17
【问题描述】:
我偶然发现了一段我以前从未见过的代码:
document.execCommand('Copy');
这似乎将剪贴板内容复制到焦点元素。
这个功能可以跨浏览器使用吗?
我发现a page 显示了document.execCommand 的兼容性矩阵。
【问题讨论】:
-
链接很有趣,但它太旧了,它只包含 firefox 2,根本不包含 chrome。有人知道后来的矩阵吗?
我偶然发现了一段我以前从未见过的代码:
document.execCommand('Copy');
这似乎将剪贴板内容复制到焦点元素。
这个功能可以跨浏览器使用吗?
我发现a page 显示了document.execCommand 的兼容性矩阵。
【问题讨论】:
这适用于“设计模式”,浏览器可以有效地将文档转换为编辑器。 execCommand API 起源于 IE,后来被added to HTML5. 确切支持哪些命令,以及它们的行为因浏览器而异。剪贴板访问被视为安全风险。
【讨论】:
是的,我在 IE、Chrome、Safari 中使用过它。如果它适用于这些浏览器,那么它应该适用于其余浏览器。无论如何,document 对象的execCommand 方法用于执行与浏览器中内置的富文本编辑功能相关的命令。 execCommand 的语法如下:document.execCommand(command, uiBool, argument)
command参数是要执行的命令——粗体、下划线、字体等
然后你有uiBool,它是一个布尔值,指定是否应显示默认用户界面。
最后一个参数是一些需要我们传递参数的命令的参数。如果命令不需要任何参数,我们将传递一个值 null 作为第三个参数。
例子:
document.getElementById("whateverID").document.execCommand('bold', false, null);
或:
document.getElementById("whateverID").document.execCommand('bold', false, <a variable nae>);
【讨论】:
更新:document.execCommand 记录在 the Mozilla DOM documentation 中,但那里的描述与 MSDN 文档略有不同。
我仍然很确定它不在 ECMA-262 标准中。
【讨论】:
document 或 window 也不属于 ECMA-262 标准。
document.execCommand 也不属于 W3C DOM 标准。 (快速查看 w3c.org 上的 DOM-1 规范似乎证实了这一点。)