chrome插件開發之調試

轉載鏈接:http://blog.csdn.net/qustdong/article/details/46046553


chrome插件開發資料還是相對豐富的

360官方提供的資料:http://open.chrome.360.cn/extension_dev/overview.html

某大神也講解的比較詳細: http://www.cnblogs.com/guogangj/p/3235703.html

有坑的地方要注意:popup.html中的js在插件中無效,需要通過引用popup.js,動態綁定js事件

先摘錄相關的內容:

程序開發,必定要涉及到調試,記得我剛開始做WEB開發前,問一些做了好久WEB開發的朋友,你們是怎樣做JavaScript調試的,我發覺大多數人竟然回答:用alert一點點試吧——不是不行,是太原始,太低效了,對吧?其實Chrome直接支持javascript的調試,擁有了Chrome,就相當於擁有了一個強大的javascript調試器了。

Chrome打開開發者工具的方法是<Ctrl>+<Shift>+<I>(Windows版),大致如下:

我們這次需要關心的有“Elements”、“Sources”和“Console”這三個標籤。Elements是用來做DOM分析的,功能有點類似Firebug,幫助我們分析頁面的內容;而Sources,是我們用來調試javascript的;Console則是我們的Log的輸出窗口,也是一個調試利器。

調試Content Script

如我提供的這個例子,可在Sources的“Copntent Scripts”下看到“content_script.js”然後設斷點,執行到斷點處時,Chrome會挺住,你可以觀察到上面的值,如圖:

太cool了,請問你還要一點點alert嗎?

調試Background

由於background和content script並不在同一個運行環境中,因此上面的方法是看不到Background的javascript的。要調試Background,還需要打開插件頁,也就是“chrome://extensions”。點對應的插件的“generated background page.html”,就出現了調試窗口,接下來的操作就跟前面的類似了。如圖:

至於你看到ID,“aajnhhjiia……”這一長串東西,這是chrome自動安排的一個ID。

調試Popup

雖然Popup和Background是處於同一運行環境中,但在剛纔的Background的調試窗口中是看不到Popup的代碼的。調試Popup還需要這樣:

然後……就跟前面差不多了。

一些問題

也許有時候你會發覺調試器不是很靈,至少我用下來感覺如此,比如你可能發現斷點設不了,或者斷點不起作用,或者看不到你自己的javascript文件。我的方法是在插件頁中,把對應的插件的“已啓用”這個複選框去掉,再重新勾上,然後再點一下“重新加載(Ctrl+R)”,通常能解決問題。當然了,還有些很古怪的問題,還不好重現,總體的解決思路就是重新載入一下,實在不行的話重啓瀏覽器,或者清除瀏覽器緩存什麼的,再試試看。

在做插件調試的時候我還遇到一個十分鬱悶的問題,那就是我的Chrome使用了“Go Agent”,關於Go Agent是用來幹嘛的,這個嘛,可以去google一下,我相信絕大多數程序員都會喜歡上它……可由於使用了這個東西,很可能會導致插件的XMLHttpRequest工作不正常,而且可能你會思索半天也找不到原因,好吧,暫時把Go Agent停用掉,甚至可能你需要重啓下Chrome——我的經驗。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章