最近閒來無事,簡單看了下Chrome擴展的開發,並且開發一個小小的翻譯插件(TranslateBao)作為練手,開發細節不詳述了,如果有新學習chrome extension開發的新人,可以參考源碼,並歡迎提出寶貴意見,共同進步。
問題
閒話不多說,在一個Demo版開發完成後,載入到Chrome中進行體驗,一切感覺良好…(-。-),但是,遇到一個感覺很不爽的東西,見下圖:
沒錯,問題就是在 檢查視圖:background.html 後面有一個 「無效」,雖然沒有發現具體影響到什麼地方,但是這麼一個負面詞語在這裡看著終歸有些不爽,於是開始了搜索之路。
問題出現的原因
這裡的 "無效" 給人的感覺應該是 "Invalid" 這種狀態,但是在英文版的chrome裡面,這裡的提示其實是 "Inactive",也就是說這裡翻譯其實是有歧義的,如果翻譯成 "不活動" 或者 "不活躍",那麼這個問題就可能好理解一點了。
通常在擴展應用裡面有可能會需要維護一種狀態,或者要執行某些任務,在Chrome擴展中被稱為 Event Pages。這裡顯示 "Inactive" 其實就是沒有持久的去運行應用,也就是在應用不活動時,會停止應用的運行。
解決方案
這裡註冊一個 Background 頁面為 Event Pages 的方法為在 manifest.json 中的 background 中增加一個 "persistent" 的屬性,設置為 true:

Event Pages 和 Background 的區別是就是持久性。
所以這裡提示的 "無效" 並不是一個錯誤,我們應該對應不同的應用場景去選擇使用 Event Pages 還是普通的Background。
轉載需經作者同意後註明作者名稱和文章來源:
https://blog.lupub.com/2014/10/04/chrome-extension-background-inactive/