2012-07-23 83 views

回答

28

TL; DR的網絡商店無法通過擴展來照本宣科,而以前允許你這樣做(--allow-scripting-galleryhas been removed in Chrome 35的標誌。

Chrome擴展程序無法執行內容腳本/插入CSS Chrome網上應用店。這在the source code的函數IsScriptableURL中明確定義(點擊上一個鏈接查看完整的邏輯)。

// The gallery is special-cased as a restricted URL for scripting to prevent 
    // access to special JS bindings we expose to the gallery (and avoid things 
    // like extensions removing the "report abuse" link). 
    // TODO(erikkay): This seems like the wrong test. Shouldn't we we testing 
    // against the store app extent? 
    GURL store_url(extension_urls::GetWebstoreLaunchURL()); 
    if (url.host() == store_url.host()) { 
    if (error) 
     *error = manifest_errors::kCannotScriptGallery; 
    return false; 
    } 

manifest_errors::kCannotScriptGallery定義here

const char kCannotScriptGallery[] = 
    "The extensions gallery cannot be scripted."; 

錯誤可以在後臺頁面的控制檯當您使用chrome.tabs.executeScript在Web商店選項卡中注入一個腳本來查看。例如,開放https://chrome.google.com/webstore/,然後在延長的背景頁面執行以下腳本(通過控制檯,用於實時調試):

chrome.tabs.query({url:'https://chrome.google.com/webstore/*'}, function(result) { 
    if (result.length) chrome.tabs.executeScript(result[0].id, {code:'alert(0)'}); 
}); 
+0

好內容腳本不工作,有沒有可能通過後臺網頁的方法嗎? 還是有沒有可能的方式來得到這個工作(除了通過命令行參數) – chingo 2012-07-25 14:14:21

+0

這似乎不再工作(在Chrome 31中)。我提交了一個bug - https://code.google.com/p/chromium/issues/detail?id=342090 – kzahel 2014-02-08 01:07:37

+2

@kzahel我剛剛修復了這個錯誤。你應該可以再次使用'--allow-scripting-gallery'(至少在Canary構建中)。 – 2014-02-10 23:19:12

相關問題