0

我对特定网页有疑问。当我点击一个链接时,我收到了一个应用程序错误(不是 http 错误等,而是应用程序级错误)。
但是我打开了开发人员工具和网络控制台,我看到没有请求发送到服务器。
所以我双击并选择了视图源,我看到这个错误是动态生成的 html 的一部分,但 html 页面似乎格式错误。
好像就这样结束了:

<div id="theId"> You can not access page 
</html>  

整个页面看起来还可以。当我使用 Crome 或 Firefox 时,我看到了同样的东西。(IE 不是一个选项,因为我没有可用的 windows pc)。
视图源不允许我“研究”页面,例如扩展标签等。
我怎样才能调试这样的东西?是否由于某种原因浏览器无法正确显示代码?

4

4 回答 4

2

“查看源代码”给出服务器发送的 HTML。通常更有用的是查看生成的文档结构。

在 Chrome 中,您可以通过打开开发人员工具(Mac 上的 cmd-alt-i,Windows 上的 ctrl-alt-i)然后查看元素选项卡(第一个选项卡)来执行此操作。在 Firefox 中,您需要查看“检查器”选项卡。

在 Chrome 和 Firefox 中,您可以右键单击任何页面元素并选择“检查元素”。这将打开带有文档结构的选项卡,并显示所选元素。这比寻找您自己感兴趣的元素更容易。

此外,当将鼠标悬停在文档树中的元素上时,两个浏览器都会在常规视口中突出显示您指向的元素。

最终的文档结构(或至少到那个时间点的最终文档结构)可能与服务器发送的 HTML 不同的原因有两个:

  1. 修改文档的 Javascript。对于大量使用 Javascript 的网站(尤其是所谓的单页应用程序),生成的文档结构可能与原始 HTML 源有很大不同。这只是构成呈现页面的基础。之后 Javascript 做了很多工作。
  2. 格式错误的 HTML。在这种情况下,所有浏览器都试图充分利用它们所拥有的东西来生成有效的文档结构。
于 2013-05-29T21:00:41.023 回答
1

要回答你标题中的问题,如果你说话的 javascript 是,如果你说话的 html 不是,那么它是准确的,但不是完成。


Html 可以并且存在于由服务器端语言甚至 javascript 生成的许多 Web 应用程序中。因此,根据您从服务器请求的内容,HTML 可能远未完成。

此外,当使用 ruby​​ 或 php 等语言使用 html 生成之类的东西时,很容易最终生成坏/sucktacular html。

javascript 的故事有点不同。由于它的本质,所有 javascript 源都必须以某种形式在您的浏览器中提供。但是请注意,浏览器可以缓存诸如 jquery 之类的东西,这意味着当您打开开发人员控制台时,它的代码可能不会显示。

然后你有缩小器和混淆的问题,然后是在缩小的混淆代码上使用的混淆器!这会留下可怕的混乱。

我的猜测是,他们的服务器生成了一些错误的 html,然后破坏了他们的 javascript,(导致 javascript 没有像您在网络日志中看到的那样调用服务器),然后在您这边处理,并显示 javascript 显示的错误消息捕获了错误。

于 2013-05-29T21:07:54.890 回答
0

据我所知,“查看源代码”会为您提供网络服务器发送给您的网络浏览器的任何内容。在呈现语法错误的 HTML 时,Web 浏览器通常非常宽容。如果您是开发此网页的人,您可能需要仔细查看它发送的内容。

于 2013-05-29T20:57:06.807 回答
0

Firefox中,使用Web Developer Toolbar,有一个“查看源代码”菜单,其中包含“查看生成的源代码”的下拉选项。在被 javascript 处理和更新后,这会输出检查员看到的完整 html 源代码。一个非常有用的插件,在 Firebug 出现之前是我的中流砥柱。

于 2013-05-29T21:46:19.400 回答