2009-11-30 19 views
60

私はちょうど私が前に見たことがないコードの一部につまずく:フォーカスの要素にクリップボードの内容をコピーするには思われるJavascript:document.execCommandクロスブラウザ?

document.execCommand('Copy');

この機能はブラウザ間で利用できますか?


Iはdocument.execCommandの互換性マトリックスを示しているa pageを発見しました。

+1

リンクは興味深いですが、それだけのFirefox 2とdoesntのは全くクロムを含ま含まとても古いです。誰でも後の行列を知っていますか? –

+2

http://caniuse.com/#feat=document-execcommand –

答えて

24

これはブラウザが効果的に文書をエディタに変える「デザインモード」用です。 execCommand APIはIEの由来で、後でadded to HTML5.となりました。サポートされているコマンドとブラウザの動作はまったく異なります。クリップボードへのアクセスはセキュリティリスクとみなされます。

+0

クリップボードへのアクセス:それは私が思った、つまりセキュリティリスクです。ありがとう! – jldupont

+3

さらに詳しく見てみるために、私は次の[コードペン](http:// codepen)に出くわしました。io/netsi1964/pen/QbLLGW)、さまざまなブラウザで異なるexecCommandを使用することができます。 –

+0

同じもので悪用が見つかった:https://github.com/dxa4481/Pastejacking/blob/master/index.html –

3

更新:まあ、document.execCommandthe Mozilla DOM documentationに記載されていますが、その説明はMSDNのドキュメントとは少し異なります。

私はECMA-262規格にはまだいないと確信しています。

+0

を参照してください。Mozilla.orgにはどうしたらいいですか? https://developer.mozilla.org/En/Document.execCommand – jldupont

+8

DOMメソッドが言語標準になるのはなぜですか?私は 'document'や' window'もECMA-262標準の一部ではないと確信しています。 –

+1

@Elijah Grey:良い点。 JavaScript言語はECMAによって標準化されていますが、DOMはW3Cによって標準化されています。しかし、私は 'document.execCommand'もW3C DOM標準にあるとは思わない。 (w3c.orgのDOM-1仕様の確認がこれを確認しているようです) –

4

はい、IE、Chrome、Safariで使用しました。これらのブラウザで動作する場合、残りのブラウザで動作するはずです。とにかく、documentオブジェクトのexecCommandメソッドは、ブラウザの組み込みリッチテキスト編集機能に関するコマンドを実行するために使用されます。など太字、下線、フォント、

次にあなたがかどうかを指定するブール値ですuiBoolを持っている - document.execCommand(command, uiBool, argument)

コマンドパラメータは、実行するコマンドです:execCommandの構文以下の通りですデフォルトのユーザーインターフェイスが表示されます。

最後のパラメータは、引数を渡す必要があるコマンドの引数の使用です。コマンドで引数が必要ない場合は、第3のパラメータとしてnullの値を渡します。

例:

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

か:

document.getElementById("whateverID").document.execCommand('bold', false, <a variable nae>); 
関連する問題