Почему инструменты разработчика IE в этом примере кажутся более описательными, чем FireBug?

#javascript #dom #firebug #developer-tools

#javascript #dom #firebug #инструменты разработчика

Вопрос:

Когда я вызываю эту строку:

 Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML") 
  

Для FireBug он возвращает:

 >>> Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML") 
  

где для IE, инструментов разработчика, он возвращает,,:

 >> Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML") 
{
    get :  function innerHTML() {     [native code] } ,
    set :  function innerHTML() {     [native code] } ,
    enumerable : true,
    configurable : true
} 
  

Вы знаете, почему это отличается? Почему IE Dev. Инструменты кажутся более описательными, чем FireBug для этого случая?

Комментарии:

1. Не уверен, но веб-консоль FF4 показывает полную информацию, так что, вероятно, это проблема с Firebug (Firebugbug?)

Ответ №1:

Потому что способ, которым Firebug выполняет ваш ввод, генерирует исключение, которое затем, в свою очередь, скрывается Firebug. Попробуйте запустить:

 try { Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML") } catch (ex) { console.log(ex); }
  

И вы поймете, что я имею в виду. Как предложил @lonesomeday, попробуйте вместо этого использовать веб-консоль.

Комментарии:

1. Но почему тогда он выдает исключение?

2. Короткий ответ таков: «потому что Firebug обладает высокой магией и, следовательно, изменчивостью, когда дело доходит до отображения объектов, и оценивает ваш JS странным образом». Если вы передадите ему вещи, которые генерируют исключения при нажатии в странных местах, он может сломаться. На самом деле, вероятно, вы могли бы отправить сообщение об ошибке по этому поводу.

3. спасибо за ответ. Кстати, правильное место для сообщения об этом — where? можете ли вы указать URL?

4. Спасибо! Я отправил проблему.