我得到的是最后访问的 url 而不是当前的。(当我访问 site.com 并随后访问 site2.com 时,我得到的网址是“site.com”,在我刷新 site2.com 后,我得到了正确的网址。
基于此处的答案:
Google Chrome 扩展程序获取页面信息
在 chrome 扩展程序中显示当前 URL
我想出了这段代码:
清单.json
{
"manifest_version": 2,
"browser_action": {
"default_popup": "action.html"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["content.js"],
"run_at": "document_end"
}
],
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs",
"unlimitedStorage",
]
}
内容.js
chrome.extension.sendRequest({method: "getUrl"}, function(response) {
console.log(response.data);
});
背景.js
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.method == "getUrl") {
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
currentUrl = tabs[0].url;
});
sendResponse({data: currentUrl});
}
else
sendResponse({}); // snub them.
});
我还尝试将此代码直接放在 content.js 下面,但在 background.js 中出现错误,并且 url 设置为chrome://extensions/
.
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
currentUrl = tabs[0].url;
});
这样做的正确方法是什么?