Javascript: document.execCommand кросс-браузер?

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

document.execCommand('Copy');

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

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


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

Ответ 1

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

Ответ 2

Да, я использовал его в 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

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

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