1
我试图在浏览其他网站时使用Chrome扩展程序获取网站的内容。 我在发生chrome.webRequest.onCompleted时调用了“XMLHttpRequest” 但是每当我调用方法XHR.Open时,都会在XHR对象的Status和StatusText字段中得到以下错误:[Exception:DOMException]。Chrome扩展程序:webRequest.onCompleted.addListener + XHR
有什么想法?
谢谢。
我使用下面的代码:
chrome.webRequest.onCompleted.addListener(
function(details) {
if (details.url.substring(0, 23) == "https://www.google.com/") // I know I do not need this
{
console.info("URL :" + details.url);
FindData("www.altavista.com");
}
},
// filters
{
urls: [
"http://*.google.com/*",
"https://*.google.com/*",
],
types: ["image"]
},
["responseHeaders"]);
function FindData(strURL) {
var req = new XMLHttpRequest();
req.open("GET", strURL, true);
req.onreadystatechange=function() {
if (req.readyState==4) {
if (req.status==200)
{
console.info("Sucess!");
console.info("Data: " + req.responseText);
}
else if (req.status==404) console.info("URL doesn't exist!")
else console.info("Error: Status is " + req.status)
}
}
req.send();
}
我的manifest.json
{
"name": "Test",
"version": "1.0",
"manifest_version": 2,
"description": "The first extension that I made.",
"browser_action": {
"default_popup": "popup.html"
},
"permissions": ["webRequest", "webRequestBlocking",
"http://www.altavista.com/*",
"http://*.google.com/*",
"https://*.google.com/*"]
}
Rob W, 您的意思是使用 'FindData(“http://www.altavista.com”);' 这也行不通。 – brunossilva
@brunossilva我已经创建了基于您的代码的演示扩展,并且按预期工作。我假设你想在扩展的生命周期中永久地捕获所有的谷歌访问。调整:1.我已将代码复制粘贴到名为'background.js'的文件中。在清单中,我使用'“background”引用该文件:{“scripts”:[“background.js”]}'。 2.我删除了“我知道我不需要这个” - 如果是块。它的作品:[background.js](http://pastebin.com/ut5z00d1),[manifest.json](http://pastebin.com/v0NKSMJK)。 –
当http:// www.google.com /'重定向到例如'http:// www.google.nl /',因为你没有声明访问清单文件中其他域的权限。确保你检查了这一点。 –