2013-05-29 68 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出現之前的支柱。

相關問題