2011-01-30 3 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 - это только нестандартная функция 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 –