Как кнопка «Просмотр исходного кода» в IE7 взаимодействует с javascript? - PullRequest
0 голосов
/ 28 января 2009

Я отлаживаю чужой код для веб-страницы, созданной с помощью ASP.NET с некоторыми эффектами JavaScript. Это форма, которую мы предварительно заполняем данными для редактирования, и одно из текстовых полей заполняется неправильным значением.

Я знаю, что текстовое поле заполняется правильным значением в коде, но где-то между ним и браузером оно перезаписывается.

Пытаясь выяснить, где это произошло, я натолкнулся на интересную ситуацию. Если я щелкну правой кнопкой мыши рядом с нарушающим элементом и выберу «просмотреть источник страницы», я смогу прокрутить вниз до элемента и увидеть

<input name="RecurrenceProperties$TextBox57" type="text" value="HEY ITS THE RIGHT VALUE" id="RecurrenceProperties_TextBox57" />

Но неверное значение содержится как в отображаемом html, так и в панели инструментов разработчика IE.

Это похоже на адскую подсказку, но я не знаю достаточно о том, как работает «View Source», чтобы рассказать, что происходит за кулисами. Что происходит между генерацией источника «Просмотр источника» и фактическим отображением страницы?

РЕДАКТИРОВАТЬ: я нашел, где это пошло не так, поставив точку останова везде, где ID встречается в JavaScript (не совсем элегантно, но я нашел это).

Предложения по отключению JavaScript и использованию IE8 оказались очень полезными. Благодарю.

Ответы [ 4 ]

8 голосов
/ 28 января 2009

То, что вы видите с помощью «view source», - это необработанный HTML, который был извлечен. HTML не содержит никаких изменений, которые были сделаны через DHTML / JavaScript.


Обновление

Вдохновленный комментариями Маника, вот кросс-браузерный 1 букмарклет для отображения того, что отображается внутри <body>:

<code>javascript:"<pre>"+document.body.innerHTML.replace(/([&<>])/g,function(c){return"&"+{"&":"amp","<":"lt",">":"gt"}[c]+";";})+"
»

1 Похоже, не работает на Safari. Кто-нибудь знает почему?

4 голосов
/ 28 января 2009

Если вы хотите увидеть, как javascript влияет на вашу страницу, используйте IE8 или FireFox / Firebug на странице, чтобы увидеть, что он (не) делает.

Они также предоставят вам информацию о стиле CSS, если на самом деле дело в том, что отображается неправильный элемент, а правильный скрыт.

2 голосов
/ 28 января 2009

Как уже упоминалось, «Просмотр источника» будет отображать HTML, отправленный сервером, изменения, сделанные через JavaScript, не будут отражены в «Просмотр источника».

Я бы предложил поискать любой код JavaScript, который может изменять значение текстового поля RecurrenceProperties_TextBox57. Проверьте <script type="text/javascript"></script> области исходного кода на наличие кода, который ссылается на текстовое поле.

1 голос
/ 28 января 2009

Если это я, первое, что я сделал бы, это отключил JavaScript и загрузил страницу. Это сузит область вашей ошибки, особенно если вы подозреваете, что виноват javascript.

Что касается того, что делает источник представления, то он показывает вам, что браузер интерпретирует ... код, отправленный с сервера. Ни один из этого кода не выполняется в исходном представлении.

...