2009年9月9日 星期三

Internet Explorer出現黃色驚嘆號的抓錯方式


雖然很多人推廣使用Firefox瀏覽器,但是綸太郎的讀者超過5成還是使用IE在瀏覽我的文章,所以IE6目前還是存在我主要使用的電腦裡,再加上在IE裡打文章比較不會有多餘的程式碼,而且套用模版抓錯時很好用,做為一個教學分享取向的網站,我想IE6對我而言,還是有存在的必要性。

為什麼說套用模版可以抓錯呢,因為我發現瀏覽網頁時,IE6的狀態列會出現黃色三角形的驚嘆號,提醒我們網頁出現了什麼問題,讓我們可以及時修正,而Firefox對語法的容忍及支援度較IE大,而且很多語法在IE是不支援的,所以這就是為什麼現在Firefox或是Google的Chrome普及率漸漸升高的原因吧,包含我自己也是用FF在看網頁,那是因為IE6已經落伍了,跟不上軟體及網頁技術更新的速度吧,但是我個人還是會繼續用它,如果要升級的話,我想會直接升到IE8吧。

如何抓錯呢?

其實這是網友DirtyMan留言提到的問題,狀態列上出現黃色驚嘆號,並將相關的文字訊息告訴我,其實很簡單,但前提是要你的電腦有裝Firefox瀏覽器,兩者並用就可抓到問題在哪裡,而綸太郎通常只能知道問題出在哪,將那段語法刪除,因為問題大多不是出現在簡單的文字錯誤,而是整個語法在IE底下不支援,而對於較深入的程式碼,我也無能為力,這是要告訴大家的,另外也有不知所以的錯誤,所以看看前後相關的程式碼,自己再判斷看看是否是影響整個語法結構的關係。

通常狀態列出現驚嘆號時,會出現"已完成,但是網頁發生錯誤"的訊息,我們在狀態列點兩下,就會跳出訊息視窗,這時按下"顯示詳細資料",就可以知道瀏覽器是跑到那一段語法出現錯誤,


以這個圖為例,他告訴你在610 行,第19個字元時發生錯誤,這就是答案了,但是我們怎樣去找出這第610行了,這是就要利用到Firefox瀏覽器了,我們打開Firefox瀏覽器,將此頁的網址key上,出現網站後,按下上方工具列的檢視→頁面原始碼,這裡就可以看到這個網站的原始程式碼了,這時在原始碼的頁面工具列上,找到編輯→移至行號


這時會跳出視窗,你就輸入610,按下確定,


游標就會跳到該行了,


這時我們可以看到狀態列有顯示這是第幾行,就可找到第610行第19個字元了。


這就是大概找到錯誤點的流程順序,接下來就是解決方式了,由於綸太郎對程式設計並不懂,所以只能將有問題的語法刪除,
以這個範例來說,他出現的是在這一段
<div id='navbarright'>
<form action
='http://revolutionzc.blogspot.com/search' id='searchform' method='get'>
<input id='s' name='s' onblur='if (this.value == \'\') {this.value = \'Buscar en este blog...\';}' onfocus='if (this.value == \'Buscar en este blog...\') {this.value = \'\';}' type='text' value='Buscar en este blog...'/>
<input id='sbutt' type='submit' value='GO'/></form>
</div>

為了保險起見,我們不能只刪除<form action...>到</form>這部份,這個語法可以看出是導引列右方(navbarright)的搜尋列位置語法,其實你可以用你自己的搜尋列的Form語法置換上去,或是將整塊區域語法都刪除,就是從<div id='navbarright'>到</div>
就能解決這個問題了。

以上是大致的除錯方式,每個模版發生的狀況不盡相同,但是至少可以知道原因在哪裡,或是哪段語法有錯誤,我們再進行修正補救。

另外有些模板刪除了第一個問題,你再次瀏覽還是會出現驚嘆號,並不是沒有解決該問題,而是IE的瀏覽器在跑網頁的時候,會顯示最先遇到的錯誤,錯誤解決後再跑網頁,才會跑到第二個錯誤的地方,或許一個模版有好多錯誤,其實這種情形,我都會放棄該模版,另外找尋適合自己的模板,除非你想要挑戰一下,覺得除錯很有趣的話,也是可以慢慢的抓出錯誤,不過自己改了那麼多的模板,真的覺得改模版是件很辛苦的事,已經漸漸減少改模版的遊戲了。

15 則留言:

  1. 綸太郎,真的很感謝你的用心!
    在Blogger的路上,有你的教學網誌真好!幫助了我非常多的忙!

    回覆刪除
  2. 另外,改模板一點都不好玩!很佩服改模板當興趣的朋友。我只會稍微改很粗淺的部份,改完沒問題基本上就不太敢在做任何變動了...

    回覆刪除
  3. 我已經過了那個狂熱期了,還是認真的寫文章比較實在。

    回覆刪除
  4. 訊息: 必須要有物件
    行: 1
    字元: 2390
    程式碼: 0
    URI: http://statics.plurk.com/505ade56233fbc0dbe49223ae7299665.js?796d3e4a9933b34

    綸爺,真的有專心看你的教學,但是我又遇到一次問題了。IE這次標示在第一行,百思不得其解,我把他刪了還是一樣耶?

    回覆刪除
  5. 你本來是ok的,後來又多裝了什麼,可能跟IE的支援不符合造成的,找不出原因,只能一步一步推敲。

    回覆刪除
  6. 我個人覺得應該是Eason音樂外掛造成的。

    回覆刪除
  7. 所以如果是錯誤在第一行的話,外掛的成分會比較高?一個一個試試看。

    回覆刪除
  8. 因為我的IE是顯示在第2行,他說是2390個字元,只有eason的外掛有那麼多個字,不是說錯誤在第一行,就是外掛的成分,而是以你本來是沒有錯誤,後來出現錯誤的情形判斷,應該是後來新增的Hacks或是外掛影響的。

    回覆刪除
  9. 感謝您的指教,另外,綸太郎,沒有留言在您的CBOX,他好像開不太出來。目前顯示『錯誤 欲連結之網址(URL)無法正確的傳回』

    回覆刪除
  10. 不管他,他最近怪怪的。

    回覆刪除
  11. 測試了一下,結論是PLURK的外掛。很詭異,之前他都不會出問題,現在只要掛著他就會有黃色驚嘆號。雖然很捨不得,但是我還是把他移除了。這又是為什麼呢?

    回覆刪除
  12. plurk目前我沒用,不太清楚。

    回覆刪除
  13. 最近用IE8觀看自己BLOG左下角出現錯誤訊息

    訊息: 存取被拒。
    行: 197
    字元: 78
    程式碼: 0
    URI: http://www.blogger.com/static/v1/widgets/3604811677-widgets.js

    太郎兄,照您本篇的方法找了第197行
    把text-align:left;刪除,甚至整段刪除皆無作用,仍然是197行錯誤..可以給個建議嗎?

    回覆刪除
  14. 我發現用IE8觀賞貴站出現一模一樣的訊息..看來有可能是Blogger系統的問題了??

    回覆刪除
  15. 我知道,只要不影響瀏覽,就不管他,因為IE對很多Java語言不支援,像你的情況應該是某個統計語法的元件不支援,如果介意,就把它拿掉。

    回覆刪除

設有留言驗證及核准,版主閱覽後,留言才會顯示,發問前請善用網站目錄Google搜尋功能