舊文件

此處文件僅供參考,請自行考量時效性與適用程度,其他庫藏文件請參考文件頁面
我們亟需您的協助,進行共筆系統搬移、及文件整理工作,詳情請查閱參與我們

討論:TestAndDebug:Firefox

出自 MozTW Wiki

於 2008年6月21日 (六) 22:45 由 Shyangs對話 | 貢獻 所做的修訂 (以錯誤主控台協助除錯)

加強本文件

前言

Wini 20:01 2006年一月14日 (CST)

本文件目前正處於嚴重的內容分歧狀態。(雖然作者只有一名而已,但該作者有精神分裂,所以內容會分歧很正常。(呃))

首先,這文件一開始是有人覺得 Firefox FAQ 實在又臭又長,還不如自己動手慢慢測比較簡單。

不過,隨著收集了越來越多的問題實例後,原本的檢測除錯步驟也越來越長了(其實第一版就已經長到讓人不想看了)。這時就開始有人覺得只要動手做幾個步驟就可以解決問題了,所以就來寫個最速除錯法吧!總之這時倒也還好,只不過是整理一下檢測除錯的精華,並歸納出「怎樣做最有效」的方法讓人照著去做而已。

但是,有人覺得只是教人照著一定的步驟去做卻不說明為何實在太死板了!於是又跑出來了一個 Windows 檢測除錯心法,期待著人人都能變得跟名電腦駭客一樣清楚自己在幹啥。

外加上剛又有人發現到,本頁面所使用的英文「 TestAndDebug:Firefox 」,搞不好會讓人誤以為這兒是在寫關於「編寫 Firefox 程式時的問題」的頁面!(呃)

總之本文件目前正處於嚴重的內容分歧狀態。仔細想想的話,問題的確蠻多的,所以各位對本文件有任何意見時,請多多利用本討論頁面。

順帶一提,個人覺得目前的一個問題,是應該無視作業系統和挑瀏覽器的網頁,專心於 Mozilla Firefox 本身的功能說明,以及官方文件及臭蟲資料的提供。(不過筆者剛好不擅長這兩項)

請在下面敘述你覺得本文件該加強的地方

以錯誤主控台協助除錯

  • 偶然間被發現的技巧
  • 內容節錄如下[1]
: : 原本中鍵可以點開新分頁的,失敗後試著用ctrl加滑鼠左鍵也不能動作…
: : 而且前後頁的按鍵都不見了,雖然有滑鼠手勢可以用,但要瀏覽較前幾頁時還是不方便
: : 請問這是不正常現象嗎?@@
: 但在頁面上的連結,點中鍵還是不開分頁(但會被框起來表示按鍵沒失效)。
: 再次檢驗過tmp裡的設定也完全找不出原因。
: 革命尚未成功…。
剛剛才想到要開Error主控台來觀察。
當我在連結上按滑鼠中鍵,或是壓著ctrl配上滑鼠左鍵時,都會出現以下錯誤:
錯誤: event is not defined原始檔:
chrome://tabmixplus/content/minit/tablib.js行: 120
所以的確是與tabmixplus有關係…
解開tabmixplus.jar後找到這個檔案開啟以後,從118行到122行的內容為

118 // for Firefox 3.0
119 eval(&quotopenNewTabWith ="+openNewTabWith.toString().replace(
120 'if (aEvent && aEvent.shiftKey)',
121 'if (aEvent && (aEvent.button == 1 || aEvent.button == 0 && (
aEvent.ctrlKey || aEvent.metaKey )) &&
(prefSvc.getBoolPref(&quotextensions.tabmix.inversefocusLinks") ||
!prefSvc.getBoolPref(&quotextensions.tabmix.inversefocusLinks") &&
aEvent.shiftKey))'
122 ));

唔…然後…請問這段程式碼有什麼錯誤的地方嗎?囧||
  • 內容節錄如下[2]
: 推 Kenqr:移除tmp重裝看看?                                         06/21 21:22
: → chris:呃…商量一下…停用再重啟可不可以呀?囧|| 一定要重裝嗎?   06/21 21:35
: → chris:請問中鍵開分頁這功能,不裝tmp也是有的嘛?都忘了…         06/21 22:06
: 推 shyangs:可能的話,我會建議你除了重裝,再加上把設定檔砍乾淨XD    06/21 22:06
: → Kenqr:不裝的話是在背景開新分頁                                  06/21 22:08
: → chris:謝謝兩位的幫忙,總算找出原因了,不是tmp造成的!!         06/21 22:13
在聽從建議停用後繼續觀察錯誤主控台,這回的訊息是:
錯誤: event is not defined
原始檔:
file:///C:/Documents%20and%20Settings/Chris/My%20Documents/Firefox/Chris/extensions/%7B1280606b-2510-4fe0-97ef-9b5a22eafe64%7D/components/userChrome_js.js
->
file:///C:/Documents%20and%20Settings/Chris/My%20Documents/Firefox/Chris/chrome/userChrome.js
行: 12

這時好窘……
因為我曾在 userChrome.js 依照忘了哪個網頁的教學,添增了以下的程式碼:

(function() {
   //公用函式
   function hookCode(orgFunc, orgCode, myCode) {
      eval(orgFunc + "=" + eval(orgFunc).toString().replace(orgCode,
myCode));
   }
   //巴哈姆特外部鏈結用中鍵點擊可直接開啟
   hookCode(&quotopenNewTabWith", /{/, "{" + (
      function() {
         if (event && event.button == 1) {
            var m =
href.match(/^javascript:(top\.)?confirmLink\(\s*(\x22|\x27)(.*)(\x22|\x27)\s*\)$/);
            if (m) href = unescape(m[3]);
         }
      }
   ).toString().replace(/^.*{/,"").replace(/.*}$/,""));
})();

而凶手就是這一段………  ̄▽ ̄||||||
不知前面有位同病相憐的板友(抱歉忘了是哪篇文章裡的推文…)狀況是否相同…
若不是這個原因的話,也可以試著用錯誤主控台一步步trace喔!好玩耶!XD

再次感謝所有給過意見的板友們!!!
  • 恩~這應該也算一種套件相衝?
個人工具