2016-11-10 68 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