我正在调试其他人的代码,用于使用ASP.NET制作的具有一些javascript效果的网页。这是我们预先填充可编辑数据的表单,其中一个文本框的填充值不正确。
我知道后面的代码中的文本框正在填充正确的值,但是在那里和浏览器之间会被覆盖。
在试图找出发生的地方时,我遇到了一个有趣的情况。如果我右键单击有问题的元素并选择“查看页面源”,我可以向下滚动到元素并查看
<input name="RecurrenceProperties$TextBox57" type="text" value="HEY ITS THE RIGHT VALUE" id="RecurrenceProperties_TextBox57" />
但是渲染的html和IE开发人员工具栏中的错误值。
这似乎是一个线索,但我不太了解“查看源”如何工作来告诉窗帘背后发生了什么。生成“查看源”源和实际呈现的页面之间会发生什么?
编辑:我通过在javascript中出现ID的各个地方设置断点来找到它出错的地方(不是很优雅,但我找到了它)。禁用javascript和使用IE8的建议非常有帮助。谢谢。
答案 0 :(得分: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。谁知道为什么?
答案 1 :(得分:4)
如果您想查看javascript对您网页的影响,请在页面上使用IE8或FireFox / Firebug查看它(不)正在做什么。
如果案例实际上显示了错误的元素,并且隐藏了正确的元素,它们也会为您提供有关Css样式的信息。
答案 2 :(得分:2)
如前所述,“查看源代码”将显示服务器发送的HTML,通过JavaScript进行的修改不会反映在“查看源代码”中。
我建议查找可能正在修改“RecurrenceProperties_TextBox57”文本框值的任何JavaScript代码。检查源的<script type="text/javascript"></script>
区域是否有引用该文本框的代码。
答案 3 :(得分:1)
如果是我,我要做的第一件事就是禁用javascript并加载页面。这将缩小您的错误来得非常快,特别是如果您怀疑javascript有问题。
就视图源所做的而言,它显示了浏览器正在解释的内容......从服务器发送的代码。这些代码都不在视图源中执行。