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 /',因爲你沒有聲明訪問清單文件中其他域的權限。確保你檢查了這一點。 –