2011-01-30 13 views

答えて

1

IEでは、はい。他のブラウザでは、いいえ。

すべての主要なデスクトップブラウザは、ユーザー選択にのみ作用するdocument.execCommand()という形式を実装しています。 IEでは、TextRangeオブジェクトもexecCommandメソッドを持っています。ユーザーはそれの上にカーソルを置いたときたとえば、次の例は、緑の要素のテキスト内容を向けるだろう。

<div id="test">Here is a test div</div> 

<script type="text/javascript"> 
    var div = document.getElementById("test"); 
    div.onmouseover = function() { 
     if (document.body.createTextRange) { 
      var textRange = document.body.createTextRange(); 
      textRange.moveToElementText(div); 
      textRange.execCommand("foreColor", false, "green"); 
     } 
    }; 
</script> 
0

あなたが気づいていない場合は、.execCommandはIEのみの非標準のJavaScript関数です。避けてください。

あなたが使いたいことを教えていただけたら、標準に準拠した方法を提案することができます。

+1

'現在の選択にのみ動作document.execCommand'は、実際にはよくサポートされています。 Firefoxは1.0日前からそれを持っていた.WebKitはSafari 2.0以来のことだと思う。 Operaは少なくとも9.0以降もサポートしています。 –

+0

@TimDown 'execCommand'は本当にうまくサポートされているようです。それはどんな仕様でも文書化されていますか?私はそれがすべて "Hackish"であると感じています – Raynos

+0

確かに一貫して実装されていません。最終的にどのように私は知らないのですが、HTML5でそれを指定する努力があります。 http://dev.w3.org/html5/spec/Overview.html#execCommand –

関連する問題