2016-11-10 71 views
0

我想使用Chrome擴展程序集成我的C#下載管理器,並且我是擴展開發的新成員。如何在開始之前取消Chrome下載並獲取下載網址?

所以我需要檢測何時以chrome發送下載請求。然後我需要獲取該URL並將其傳遞給我的程序進行下載。我試了一下,但沒有得到任何迴應。

我的代碼:

manifest.js

{ 
    "manifest_version": 2, 

    "name": "ADM", 
    "description": "This extension shows a Google Image search result for the current page", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "permissions": [ 
    "downloads", 
    "https://ajax.googleapis.com/" 
    ], 

    "content_scripts": [{ 
    "matches" : ["http://*/*", "https://*/*"], 
    "js" : ["myscript.js"] 
    }] 
} 

myscript.js

chrome.downloads.onDeterminingFilename.addListener(function (item) { 
    chrome.downloads.cancel(item.id); 
    alert(item.url); 
}); 

正如我所說的,這個代碼沒有取消下載並顯示測試的網址。我該怎麼做?

+0

我忘了改'content_script' JS文件名,遺憾的是。它必須是'myscript.js'。除了這個錯誤之外,我使用一個簡單的alert函數嘗試了它,當url與regex匹配時,腳本就會運行。 –

+1

你還需要一個活動頁面。 https://developer.chrome.com/extensions/overview#arch –

+0

據我所知,我需要使用'sendMessage'和'onMessage'來做到這一點。這是真的嗎? –

回答

1

您正嘗試從內容腳本訪問特權Chrome瀏覽器,這是出於安全原因而不允許的。您需要將您的代碼移至活動頁面。

"background": { "scripts": ["myscript.js"], "persistent": false } 

而且,讀結構概述:https://developer.chrome.com/extensions/overview#arch