2012-08-28 81 views
0

Google Chrome可以選擇禁用flash和java,並且只能在用戶點擊時運行它們,如何創建將執行此操作的擴展程序?如何在Google Chrome擴展程序中阻止iframe

+0

你想知道,如果瀏覽器API具有能否做到這一點,或者你只是想知道這樣的擴展是否存在?第一個選項是在話題上,但第二個選項不是。我建議你修改你的問題來問第一個問題(但它仍然可以包含第二個問題)。 – apsillers

+0

@RobW當然,我可以很欣賞你的觀點,但目前編寫的問題完全可以用「不,沒有這樣的擴展名」或「是的,這是一個鏈接」完全回答,完全沒有提及Chrome的擴展API。我不只是打算挑剔;我認爲一個更準確的措辭會阻止好的偏離主題的答案。 – apsillers

+0

@apsillers好了,但我想知道是否存在這樣的事情,如果沒有,我會創建它,但我會在文檔中找到它,我問是因爲我不想浪費我的時間,如果有類似的東西這已經,並尋找它沒有給出任何結果。 – jcubic

回答

5

可以實現使用webRequest APIonBeforeRequest event此功能。使用type: ['sub_frame']和extraInfoSpec ['blocking']創建一個過濾器。然後,在事件監聽器中返回{cancel:true}

最少例如:

chrome.webRequest.onBeforeRequest.addListener(function(details) { 
    // Save the data in `details` for later use 
    // The data must be associated with the `tabId` and `frameId`, so that it 
    // can be used later 
    if (your_method_says_block_it()) 
     return {cancel: true}; 
}, { 
    urls: ['*://*/*'], 
    types: ['sub_frame'] 
}, ['blocking']); 

清單文件:需要

... 
    "permissions": ["webRequest", "webRequestBlocking", "*://*/*"] 
... 
  • webRequest權限,以使API。
  • 需要webRequestBlocking權限才能使請求處理同步,以使該函數能夠修改(取消)請求。
  • 需要的*://*/*權限允許訪問的主機
+1

感謝您的回答我改變了排隊以匹配它,所以其他人可以受益。但我只是想知道是否有這樣的事情,可能有很好的功能,我不想構建。 – jcubic

+0

更新:作爲第二個參數傳遞給'chrome.webRequest.onBeforeRequest.addListener'的[RequestFilter](https://developer.chrome.com/extensions/webRequest#type-RequestFilter)應該通過'types:'not'鍵入:'。 –

+0

@彼得謝謝,修復。 –

0

試試看的Adblock或禁用下鍍鉻所需的內容://設置/內容

相關問題