#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. Спасибо! Я отправил проблему.