Javascript:document.execCommand 跨浏览器?

IT技术 javascript cross-browser
2021-03-09 13:19:53

我偶然发现了一段我以前从未见过的代码:

document.execCommand('Copy');

这似乎将剪贴板内容复制到焦点元素。

此功能是否可以跨浏览器使用?


我找到了一个页面,其中显示了document.execCommand.

3个回答

这是针对“设计模式”,浏览器有效地将文档转换为编辑器。execCommand API 起源于 IE,后来被添加到 HTML5。确切支持哪些命令,以及它们的行为因浏览器而异。剪贴板访问被视为安全风险。

2021-04-18 13:19:53
对于那些想要进一步研究它的人,我遇到了以下代码笔,它很好地细分了不同浏览器可用的不同 execCommand。
2021-04-20 13:19:53
剪贴板访问:这就是我认为的安全风险。谢谢!
2021-05-15 13:19:53

是的,我已经在 IE、Chrome、Safari 中使用过它。如果它适用于这些浏览器,那么它应该适用于其他浏览器。无论如何,对象execCommand方法document用于执行与浏览器中内置的富文本编辑功能相关的命令。的语法execCommand如下:document.execCommand(command, uiBool, argument)

命令参数是要执行的命令——粗体、下划线、字体等。

然后你有uiBoolwhich 是指定是否应该显示默认用户界面的布尔值。

最后一个参数是一些需要我们传递参数的命令的参数。如果命令不需要参数,我们传递一个值null作为第三个参数。

例子:

document.getElementById("whateverID").document.execCommand('bold', false, null);

或者:

document.getElementById("whateverID").document.execCommand('bold', false, <a variable nae>);

更新:嗯,document.execCommandMozilla DOM 文档中记录,但它的描述看起来与 MSDN 文档略有不同。

我仍然很确定它不在 ECMA-262 标准中。

为什么 DOM 方法会在语言标准中?我很确定document或者window不是 ECMA-262 标准的一部分。
2021-04-19 13:19:53
问题是关于浏览器支持,而不是标准。
2021-04-30 13:19:53
@Elijah Grey:好点。JavaScript 语言由 ECMA 标准化,而 DOM 由 W3C 标准化。但我认为document.execCommand也不在 W3C DOM 标准中。(快速检查 w3c.org 上的 DOM-1 规范似乎证实了这一点。)
2021-05-11 13:19:53
为什么在 Mozilla.org 上有一些它的flash点?developer.mozilla.org/En/Document.execCommand
2021-05-12 13:19:53