2015-03-20 3 views
2
<input type="text" id="test"> 
<script type="text/javascript"> 
    var test=document.getElementById("test"); 
    Object.defineProperty(test.style,"width",{ 
     set:function(){ 
      alert(1); 
     } 
    }); 
    test.onfocus=function(){ 
     test.style.width="120px"; 
    } 
</script> 

При изменении ширины ввода функция setter может запускаться в IE11 и FireFox, но она не может работать в хроме.Функция setter не может быть запущена в хромированном состоянии

+0

Может быть, вы объясните, что вы хотите достичь, поэтому мы не имеем X/Y proble m – mplungjan

+0

@mplungjan название довольно ясно, оно не работает только в хроме http://jsfiddle.net/moogs/5626t03L/1/ –

+0

Я понимаю, но в чем смысл кода в первую очередь? И почему бы не использовать this.style.width? – mplungjan

ответ

3

К сожалению, это выглядит как старая ошибка в Chrome:

В хроме, в отличие от других браузеров, CSSStyleDeclaration является функцией, а не объект.

Связанные