Javascript: document.execCommand cross-browser?

Po prostu natknąłem się na kawałek kodu, którego nigdy wcześniej nie widziałem:

document.execCommand('Copy');

Który wydaje się kopiować zawartość Schowka do elementu w centrum uwagi.

Czy ta funkcjonalność jest dostępna w różnych przeglądarkach?


Znalazłem stronę , która pokazuje macierz zgodności dla document.execCommand.

Author: Michał Perłakowski, 2009-11-30

3 answers

Jest to "tryb projektowania", w którym przeglądarka skutecznie zamienia dokument w edytor. ExecCommand API pochodzi z IE i został później dodany do HTML5. Dokładnie to, które polecenia są obsługiwane, a także ich zachowanie różni się w zależności od przeglądarki. Dostęp do schowka jest uważany za zagrożenie bezpieczeństwa.

 29
Author: peller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-15 21:41:42

Tak, używałem go w IE, Chrome, Safari. Jeśli to działa dla tych przeglądarek, to powinno działać dla reszty. W każdym razie, metoda execCommand obiektu document jest używana do wykonywania poleceń związanych z wbudowanymi funkcjami edycji tekstu rozszerzonego w przeglądarce. Składnia execCommand jest następująca: document.execCommand(command, uiBool, argument)

Parametrem polecenia jest polecenie do wykonania-pogrubienie, podkreślenie, czcionka itp.

Następnie masz uiBool, która jest wartością logiczną, która określa, czy domyślny użytkownik interfejs powinien być pokazany.

A ostatnim parametrem jest argument use dla niektórych poleceń, które wymagają podania argumentu. Jeśli polecenie nie wymaga żadnego argumentu, przekazujemy wartość null jako trzeci parametr.

Przykład:

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

Lub:

document.getElementById("whateverID").document.execCommand('bold', false, <a variable nae>);
 5
Author: user3798995,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-29 22:18:32

Update: Cóż, {[0] } jest udokumentowane w dokumentacji Mozilli DOM , ale jej opis tam wygląda nieco inaczej niż w dokumentacji MSDN.

Nadal jestem prawie pewien, że nie jest w standardzie ECMA-262.
 3
Author: Daniel Pryden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-30 01:27:51