Javascript: document.execCommand кросс-браузер? - PullRequest
63 голосов
/ 30 ноября 2009

Я просто наткнулся на кусок кода, который никогда раньше не видел:

document.execCommand('Copy');

, который, кажется, копирует содержимое буфера обмена в элемент в фокусе.

Доступна ли эта функция кросс-браузерно?


Я нашел страницу , которая показывает матрицу совместимости для document.execCommand.

Ответы [ 3 ]

27 голосов
/ 30 ноября 2009

Это для «режима разработки», когда браузер эффективно превращает документ в редактор. API execCommand был создан в IE, а затем был добавлен в HTML5. В зависимости от того, какие команды поддерживаются, а также их поведение в разных браузерах. Доступ к буферу обмена считается угрозой безопасности.

4 голосов
/ 10 июля 2014

Да, я использовал его в IE, Chrome, Safari. Если он работает для этих браузеров, то он должен работать для остальных. В любом случае, метод execCommand объекта document используется для выполнения команд, относящихся к встроенным функциям Rich Text Editing в браузере. Синтаксис execCommand следующий: document.execCommand(command, uiBool, argument)

Параметр команды - это команда для выполнения - полужирный шрифт, подчеркивание, шрифт и т. Д.

Тогда у вас есть uiBool, которое является логическим значением, которое указывает, должен ли отображаться пользовательский интерфейс по умолчанию.

И последний параметр - это аргумент, используемый для некоторых команд, который требует, чтобы мы передали аргумент. Если команда не требует аргументов, мы передаем значение null в качестве третьего параметра.

Пример:

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

или

document.getElementById("whateverID").document.execCommand('bold', false, <a variable nae>);
3 голосов
/ 30 ноября 2009

Обновление: Хорошо, document.execCommand задокументировано в документации Mozilla DOM , но ее описание там немного отличается от документации MSDN.

Я все еще уверен, что он не соответствует стандарту ECMA-262.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...