在Chrome扩展程序中显示当前网址

时间:2012-07-15 17:18:27

标签: javascript google-chrome tabs google-chrome-extension

在做了一些研究之后,我提出的代码是:

var outUrl;
// first get the windowid
chrome.windows.getCurrent(function(window) {
    // then get the current active tab in that window
    chrome.tabs.query({
        active: true,
        windowId: window.id
    }, function (tabs) {
        var tab = tabs[0];
        document.write(tab.url)
    });
});

这是在我的弹出式html文件中调用的javascript文件中。但它不显示当前网站的URL,而是显示任何内容。

我在本网站和其他网站上发现了多篇关于此的帖子,但我无法实现任何所谓的解决方案。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:27)

也许这就是你要找的......

chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT},
   function(tabs){
      alert(tabs[0].url);
   }
);

答案 1 :(得分:10)

我有同样的问题。我写了这个扩展名来显示当前用户正在弹出窗口中浏览的URL。

manifest.js

"permissions": [ 
  "tabs"
]

popup.js

function getCurrentTabUrl(callback) {  
  var queryInfo = {
    active: true, 
    currentWindow: true
  };

  chrome.tabs.query(queryInfo, function(tabs) {
    var tab = tabs[0]; 
    var url = tab.url;
    callback(url);
  });
}

function renderURL(statusText) {
  document.getElementById('status').textContent = statusText;
}

document.addEventListener('DOMContentLoaded', function() {
  getCurrentTabUrl(function(url) {
    renderURL(url); 
  });
});

答案 2 :(得分:0)

解决方案:

获取Chrome扩展程序当前所选标签的网址 这段代码是获取URL的一部分,因为在tabs[0].url中,我们无法获取host, hostname, origin, port, etc...

之类的URL。
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
let link = document.createElement('a');
link.href = tabs[0].url;
})

进一步使用基本js来发挥作用: link.host =“密码记住.web.app” 您可以使用其他类似link.hostname, link.hash, link.host, link.href, link.origin, .link.pathname, link.protocol, link.search

希望它可以解决您的问题!

答案 3 :(得分:-2)

这是你在找什么?

window.location.href