从扩展名中获取当前URL?

时间:2019-03-26 22:55:26

标签: javascript google-chrome-extension

对于我的Google Chrome扩展程序,我需要获取当前的URL。我知道,在常规JavaScript中,我可以使用它来获取链接和主机:

var hostname = window.location.hostname;
var url = window.location.href;

但是如何在扩展程序中执行此操作?实际上,我以this为例,说明了它可以正常工作,但是对于我想做的事情似乎有些过高了。是否有更好的方法来获取当前URL,也许无需在页面中注入脚本?

1 个答案:

答案 0 :(得分:1)

您可以使用chrome.tabs.query()将当前URL放入扩展代码中的变量中:

chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function(tabs) {
    var url = tabs[0].url;
});

请记住:将使用url变量的代码部分应该位于上面的(匿名)回调函数中,而不是其他地方。否则,您将获得一个undefined值,因为Chrome扩展程序代码是异步执行的。