Chrome 扩展程序:获取当前标签页网址
2018-07-06
1634
我试图在 Chrome 扩展程序中获取当前选项卡的 URL。 所有来源都说我需要“chrome.tabs.query({active: true;})” 事实是,chrome.tabs.query 只能在后台执行,并且对于后台活动选项卡始终且仅是“chrome://extensions”。
有没有办法获取实际活动选项卡的 URL?
1个回答
找到解决方案。
正如我之前提到的,“chrome.tabs.query({active: true;})”只能从 background.js 运行,而 background.js 的活动选项卡始终是浏览器的扩展页面,因此它毫无用处。
根据安全策略,我们需要浪费大量 PC 资源并执行如下操作: 在 client.js 中:
function getcururl(){
var s = document.createElement('script');
// TODO: add "script.js" to web_accessible_resources in manifest.json
s.src = chrome.extension.getURL('gturl.js');
s.onload = function() {
window.postMessage({ type: "gtcrurl", value: cururl }, "*");
this.remove();
};
(document.head || document.documentElement).appendChild(s);}
document.addEventListener('DOMContentLoaded', getcururl());
在 gturl.js 中:
var cururl = window.location.host;
现在我们可以在 popup.js 中执行如下操作:
var crurl = "empty";
window.addEventListener("message", function(event) {
if(event.data.type === 'gtcrurl') {
window._test = event.data.value;
console.log(event.data.value);
crurl = event.data.value;
}}, false);
Don Joe
2018-07-08