2013-05-29 36 views
0

我有一个特定的网页的问题。当我按下一个链接时,我得到了一个应用程序错误(不是http错误等,但应用程序级错误)。
但我有开发工具和网络控制台打开,我看到没有请求发送到服务器。
所以我双击并选择视图源,我看到这个错误是动态生成的HTML的一部分,但HTML页面似乎格式不正确。
似乎就这样结束:浏览器中的查看源代码是否始终准确/完整?

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

整个页面似乎确定,但。当我使用Crome或Firefox时,我会看到同样的事情(IE不是我的选择,因为我没有可用的Windows PC)。
查看源不允许我“研究”页面,例如展开标签等。
我该如何调试这样的东西?是否由于某些原因,浏览器不能正确显示代码?

+0

“不是http错误等,但应用程序级别错误”。你究竟是什么意思? – j08691

+0

@ j08691:'你不能访问页面'味精我的意思是 – Cratylus

+0

如果它是一个应用程序(服务器)级别的错误,你可能会看看我认为的应用程序日志。 –

回答

2

“查看源文件”给出了HTML,因为它是由服务器发送。通常更有用的方法是查看生成的文档结构。

在Chrome中,您可以通过打开开发者工具做到这一点(CMD-ALT-我在Mac上,CTRL-ALT-我在Windows上),然后看看元素选项卡(第一个选项卡)。 在Firefox中,您需要查看“Inspector”选项卡。

在这两种Chrome和Firefox,你可以在任何网页元素上单击鼠标右键,选择“检查元素”。这将显示带有文档结构的选项卡,并显示所选元素。这比搜索你自己感兴趣的元素容易得多。

此外,悬停在文档树中的元素时,这两种浏览器彰显你在常规视窗指向的元素。

有两个原因,最后文件结构(或至少,最终达到那个时间点),可以从不同的HTML服务器发送:

  1. 的Javascript修改文档。对于非常使用JavaScript的网站(尤其是所谓的单页面应用程序),最终的文档结构可能与原始HTML源代码有很大不同。这只是形成页面的基础。之后有很多Javascript完成。
  2. 格式错误的HTML。在这种情况下,所有浏览器都会尽量利用它们之前的优点来生成有效的文档结构。
+0

+1元素选项卡上的提示 – Cratylus

+1

F12 /右键单击并检查元素/(Ctrl | Cmd)+ Shift + C,然后单击元素也可以调出Chrome开发工具。 –

+0

疯狂:我得到了最初的组合错误,而我可能每天都使用它,而且大部分时间都是巨大的。事实证明,至少在我的Chrome中,ctrl-shift-i实际上在gmail中打开了一条新消息,其中包含当前的url! –

0

据我所知,“查看源文件”给你任何的网络服务器发送你的网页浏览器。当涉及到渲染语法错误的HTML时,Web浏览器通常非常宽容。如果你是开发这个网页的人,你可能想仔细看看它发送的内容。

1

要回答标题中的问题,如果您说的是,如果您说话的html是yes和no,那么它的答案是准确但不完整。


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

此外,当使用诸如ruby或php之类的语言来使用诸如html代码之类的东西时,最终可能会很容易生成糟糕/晦涩的html。

这个故事与javascript有点不同。根据它的必要性,所有javascript源代码都必须以某种形式在浏览器中提供。但事实上,像jquery这样的东西可以缓存由您的浏览器这意味着它的代码可能不会显示,当你打开开发者控制台。

然后你有问题的缩小和混淆,然后混淆器使用缩小混淆代码!这可以留下一个可怕的混乱。

我的猜测是他们的服务器生成了一些坏HTML,然后打破了他们的JavaScript(导致JavaScript没有调用服务器,就像你在网络日志中看到的那样),然后用事件处理你的事物由捕获错误的JavaScript显示。

+0

有javascript.But可以结束我在OP中指定的方式吗? – Cratylus

+0

@Cratylus这就是为什么我的猜测是他们生成了坏的HTML,这打破了JS,因为这不是有效的HTML,并会打破大多数浏览器。问题在于浏览器会尽其所能地尽可能多地显示它们,即使***如果HTML被破坏也是如此。 – Ryan

0

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

相关问题