0

我正在调试其他人的代码,该代码是用 ASP.NET 制作的,带有一些 javascript 效果。这是我们使用可编辑数据预先填充的表单,其中一个文本框正在填充不正确的值。

我知道文本框在后面的代码中填充了正确的值,但是在它和浏览器之间的某个地方被覆盖了。

在试图找出发生的地方时,我遇到了一个有趣的情况。如果我在有问题的元素附近右键单击并选择“查看页面源”,我可以向下滚动到该元素并查看

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

但错误的值出现在呈现的 html 和 IE 开发人员工具栏中。

这似乎是一条线索,但我对“查看源代码”的工作原理知之甚少,无法说明幕后发生的事情。在“查看源”源的生成和实际呈现的页面之间会发生什么?

编辑:我通过在 javascript 中出现的 ID 的任何地方放置一个断点来发现它出错的地方(不是很优雅,但我找到了它)。

禁用 javascript 和使用 IE8 的建议非常有帮助。谢谢。

4

4 回答 4

8

您通过“查看源代码”看到的是已获取的原始 HTML。HTML 不包括通过 DHTML/JavaScript 完成的任何更改。


更新

受 Manik 评论的启发,这是一个跨浏览器1的书签,用于显示内部呈现<body>的内容:

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

1虽然似乎不适用于 Safari。有谁知道为什么?

于 2009-01-28T17:08:17.080 回答
4

如果您想查看 javascript 对您的页面有什么影响,请在页面上使用 IE8 或 FireFox/Firebug 来查看它在(不)在做什么。

他们还将为您提供有关 Css 样式的信息,如果情况实际上是显示了错误的元素,而隐藏了正确的元素。

于 2009-01-28T17:15:14.790 回答
2

如前所述,“查看源代码”将显示服务器发送的 HTML,通过 JavaScript 进行的修改不会反映在“查看源代码”中。

我建议寻找任何可能修改“RecurrenceProperties_TextBox57”文本框值的 JavaScript 代码。检查<script type="text/javascript"></script>引用文本框的任何代码的源区域。

于 2009-01-28T17:22:49.080 回答
1

如果是我,我要做的第一件事就是禁用 javascript 并加载页面。这将缩小您的错误很快出现的范围,特别是如果您怀疑 javascript 有问题。

至于视图源正在做什么,它向您展示了浏览器正在解释什么......从服务器发送的代码。这些代码都没有在视图源代码中执行。

于 2009-01-28T17:23:44.007 回答