2

我想使用JavaScript來添加一個搜索欄,chrome://extensions/頁,所以我創建了一個名爲test.user.js文件,並在寫劇本:我可以使用JavaScript(用戶腳本)修改chrome:// extensions/page嗎?

// ==UserScript== 
// @name  chromeex 
// @namespace chromeex 
// @version v1.0 
/* @reason 
* just a test 
* @end 
*/ 
// @match  chrome://extensions/ 
// 
// ==/UserScript== 

(function(){ 
    alert("haha"); 
}()); 

但是當我加載它在Chrome ,它說無效的標題,最後我發現它是@match chrome://extensions/導致錯誤。有沒有對此的解決方法?

回答

4

Chrome擴展程序不會在chrome://extensions/目錄或Chrome Web Store或其他一些重要安全區域執行。

一個簡單的方法去思考的是,如果一個擴展了在你的Chrome瀏覽器擴展頁面訪問DOM它可以刪除您卸載它的能力,這可能是很多用戶非常討厭。但是,如果您想在擴展頁面外部構建一些能夠搜索用戶的擴展的信息,您可能需要查看chrome.management API

chrome本身是不允許做方案,這就是爲什麼你得到一個無效的方案錯誤。 Here's what Google has to say about it

A匹配圖案本質上是與允許的方案(httphttpsfile,或ftp)開頭的URL,並且可以包含'*'字符。特殊模式<all_urls>與任何以允許的方案開頭的URL匹配。

因此,根據定義chrome作爲一個計劃將不會工作,不管是什麼。不要把它看作是另一個網頁,而是Chrome的用戶界面的一部分。

+0

其實,他們可與管理API訪問到對方:http://code.google.com/chrome/extensions/management.html – wong2 2011-05-27 06:22:27

+0

對,我是編輯,在爲你還說評論。無論如何,真正重要的是chrome.management可以在擴展頁面之外運行,並具有許多權限,但是沒有任何可以在chrome:// extensions /上運行腳本。能夠啓用/禁用/卸載擴展是一回事,而在擴展卸載的最後一頁的頁面上修改DOM則是另一回事。 – brymck 2011-05-27 06:33:10

+0

我試圖用內容腳本編寫擴展:http://code.google.com/chrome/extensions/content_scripts.html.But當我在manifest.json中設置匹配url時:'「matches」:[「chrome :// extensions/*「],'表示該方案無效 – wong2 2011-05-27 06:35:59

1

我認爲,該網頁是不是「普通」網頁,它的高安全性區域,在那裏你可以不userscripts陷入混亂。這就是插件的用途。

1

你不能在Chrome中注入內容腳本/用戶腳本://擴展/出於安全考慮。您可以使用Extension Management API頁面創建您自己的擴展管理擴展。

相關問題