Цитата:
|
хотя не, в опере у меня не пашет твой вариант, в 12-й не тестил, у меня щас 11.64... но зато в опере есть дескрипторы сеттер/геттер, тоесть с ней вообще все проще.
|
http://help.dottoro.com/ljrmcldi.php ← тут пишут, что работает везде, кроме оперы.
|
для оперы этот вариант канает:
<div id="lala"></div> <script> var div = document.getElementById( 'lala' ); var descriptor = Object.getOwnPropertyDescriptor( div, 'innerHTML' ); var oldSetter = descriptor.set; descriptor.set = function( value ) { alert( "Попытка назначить: " + value ); oldSetter.apply( this, arguments ); } Object.defineProperty( div, "innerHTML", descriptor ); div.innerHTML = "<b>test</b> <i>italic</i>"; alert( div.innerHTML ); </script> |
Цитата:
|
ты просто проверяй присутствие дескриптора сеттер, если есть юзай defineProperty, в противном случае событие что ты показал.. и т.д.
|
FINoM,
а ты видел че пишет w3c? http://www.w3.org/TR/DOM-Level-3-Eve...ubtreeModified Цитата:
|
В жопу W3C :D
|
Цитата:
|
Вот, написал код, работает в IE, Firefox, Opera, но не в Chrome.
<!DOCTYPE html> <html><head> <title></title> </head><body> <p>asd</p> <script type="text/javascript"> //основной код var desc={ get: function () { delete this.innerHTML; var res=this.innerHTML; Object.defineProperty(this, "innerHTML", desc); return res; }, set: function (value) { this.oninnerHTML(value); delete this.innerHTML; this.innerHTML=value; Object.defineProperty(this, "innerHTML", desc); }, configurable: true }; function setInnerHTMLHandler(element) { Object.defineProperty(element, "innerHTML", desc); } //конец основного кода var p=document.getElementsByTagName("p")[0]; setInnerHTMLHandler(p); p.oninnerHTML=function (text) { alert(text); } p.innerHTML="123"; </script> </body></html> |
Часовой пояс GMT +3, время: 16:46. |