How can I get the URL of the current tab from a Google Chrome extension? How can I get the URL of the current tab from a Google Chrome extension? google-chrome google-chrome

How can I get the URL of the current tab from a Google Chrome extension?


Use chrome.tabs.query() like this:

chrome.tabs.query({active: true, lastFocusedWindow: true}, tabs => {    let url = tabs[0].url;    // use `url` here inside the callback because it's asynchronous!});

This requires that you request access to the chrome.tabs API in your extension manifest:

"permissions": [ ...   "tabs"]

It's important to note that the definition of your "current tab" may differ depending on your extension's needs.

Setting lastFocusedWindow: true in the query is appropriate when you want to access the current tab in the user's focused window (typically the topmost window).

Setting currentWindow: true allows you to get the current tab in the window where your extension's code is currently executing. For example, this might be useful if your extension creates a new window / popup (changing focus), but still wants to access tab information from the window where the extension was run.

I chose to use lastFocusedWindow: true in this example, because Google calls out cases in which currentWindow may not always be present.

You are free to further refine your tab query using any of the properties defined here: chrome.tabs.query


Warning! chrome.tabs.getSelected is deprecated. Please use chrome.tabs.query as shown in the other answers.


First, you've to set the permissions for the API in manifest.json:

"permissions": [    "tabs"]

And to store the URL :

chrome.tabs.getSelected(null,function(tab) {    var tablink = tab.url;});


Other answers assume you want to know it from a popup or background script.

In case you want to know the current URL from a content script, the standard JS way applies:

window.location.toString()

You can use properties of window.location to access individual parts of the URL, such as host, protocol or path.