Chrome扩展程序:获取当前标签页网址

时间:2018-07-06 23:31:32

标签: google-chrome

我正在尝试获取Chrome扩展程序中的当前标签页网址。 所有消息来源都说我需要“ chrome.tabs.query({active:true;})” 事实是,chrome.tabs.query只能在后台执行,并且对于后台活动选项卡,始终为“ chrome:// extensions”。

有什么方法可以获取ACTUAL活动标签的网址?

1 个答案:

答案 0 :(得分:0)

找到解决方案。

正如我之前提到的,“ chrome.tabs.query({active:true;})”只能从background.js运行,而background.js的active标签始终是浏览器的扩展程序页面,因此无用。

根据安全策略,我们需要浪费大量的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);