我正在嘗試記錄爲加載的每個頁面所做的所有請求。這裏有manifest.json
和background.js
文件。在Chrome擴展中獲取當前頁面的url
manifest.json:
{
"name": "Requests",
"version": "1.0",
"description": "Log Requests",
"permissions": ["webRequest",
"webRequestBlocking",
"tabs",
"<all_urls>"],
"background": {
"scripts": ["background.js"]
},
"manifest_version": 2
}
background.js:
var url = ''
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
url = tabs[0].url;
});
chrome.webRequest.onBeforeRequest.addListener(
function(info) {
console.log("Request for " + url + ': --> ' + info.url);
},
// filters
{
urls: ["<all_urls>"]
},
// extraInfoSpec
["blocking"]);
我已經是裏面background.js
的url
參數總是包含chrome://extension/
不管我加載的頁面的問題。我不明白爲什麼會發生這種情況。我試圖使用window.location
給我當前的網址,但那也返回相同的值。任何人都可以請幫忙?
爲什麼你認爲它會改變?你只設置一次'url',並且永遠不要改變它。所以,它永遠不會改變。 – Makyen
@Makyen謝謝你的答案Makyen。我的理解是每次加載新鏈接時都會觸發'chrome.tabs.query'。我試圖通過'chrome.webNavigation.onBeforeNavigate.addListener做到這一點(功能(具體){\t \t URL = details.url; \t \t});'但每次那不是返回正確的URL。你有什麼其他的建議? – QPTR
只需將'chrome.tabs.query'方法嵌套到'onBeforeRequest'的'callback'中就行了。我希望這種做法是正確的。 – QPTR