如何使用javascript获取chrome扩展程序中当前Tab的URL

时间:2013-08-26 03:38:04

标签: javascript url google-chrome-extension

我刚刚开始使用Google Chrome扩展程序,我的项目涉及制作扩展程序,点击该扩展程序时会打印当前打开的页面/标签页的URL。

因此,如果我在google的主页上并点击我的扩展程序,我需要在扩展程序中输入“https://www.google.com/”作为我的输出。

我需要使用javascript来执行此操作,并且无法找到我理解的代码以及执行此操作的代码。我读到了关于使用“window.location”和“document.href”的东西,但是这不会给我只是我的扩展名而不是当前标签的网址吗?

请帮我开始吧。提前谢谢。

9 个答案:

答案 0 :(得分:50)

尝试

chrome.tabs.getCurrent(function(tab){
        console.log(tab.url);
    }
);

请注意,您必须在清单文件中设置tabs权限

"permissions": [
    "tabs"
],

http://developer.chrome.com/extensions/tabs.html

activeTab权限,如果点击扩展程序按钮[Xan]

启动

https://developer.chrome.com/extensions/activeTab


如果上述方法无效,请尝试

chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
    console.log(tabs[0].url);
});

答案 1 :(得分:28)

使用javascript,如果您没有在弹出窗口中使用它,它将起作用,因为弹出窗口中的javascript将返回弹出窗口的url,因此,在弹出窗口中,您必须使用Chrome标签API并在Chrome清单中设置权限。

chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
    console.log(tabs[0].url);
});

最好的方法是使用Chrome标签API

答案 2 :(得分:6)

您需要注意“当前标签”的含义。如果用户打开了多个窗口,每个窗口都有多个标签, Chrome会将“当前窗口”定义为运行使用chrome.tabs API 。这发生在我身上,我通过引用不是“当前”窗口解决了它,但是最后关注的那个

chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
    // Do something
});

参考文献:

https://developer.chrome.com/extensions/windows#current-window https://developer.chrome.com/extensions/tabs#method-query

希望它有所帮助!

答案 3 :(得分:0)

更新: 此方法现已弃用,请不要使用

就我而言,上述任何一项都没有奏效。所以我用过这个:

chrome.tabs.getSelected(null, function(tab) {
    console.log(tab.url)
})

它很棒!希望它有所帮助。

答案 4 :(得分:0)

这对我有用了试试

chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function(tabs) {
// and use that tab to fill in out title and url
var tab = tabs[0];
console.log(tab.url);
alert(tab.url);
 });

答案 5 :(得分:0)

请勿使用 getSelected

根据Chrome Developer Docs: 自Chrome ver.33

以来,chrome.tabs.getSelected 已被弃用

相反使用:

像穆萨的第二个建议一样,{p> chrome.tabs.query({active:true}, __someCallbackFunction__)

答案 6 :(得分:0)

这是您在不添加新的tabs权限的情况下寻找的答案

chrome.browserAction.onClicked.addListener(function(e){
     console.log(e.url); 
     //give you the url of the tab on which you clicked the extension
})

答案 7 :(得分:0)

这里发布的解决方案不知何故对我不起作用,但下面的代码片段没有任何问题-

let currentURL = window.location.href;
console.log(currentURL)

答案 8 :(得分:-1)

最简单的方法:

console.log('current url'+ window.location)