10

经过一番研究,我想出的代码是这样的:

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

3 回答 3

36

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

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

并且需要在清单中设置选项卡权限...

清单.json

"permissions": [ 
  "tabs"
]
于 2012-07-15T19:20:40.657 回答
15

我遇到过同样的问题。我编写了这个扩展来在弹出窗口中显示当前用户正在浏览的 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); 
  });
});
于 2015-09-04T07:39:49.840 回答
0

解决方案:

获取当前选择的 Chrome 扩展选项卡的 URL 此代码用于获取部分 URL,因为tabs[0].url我们无法获取部分 URL,例如host, hostname, origin, port, etc...

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

希望它能解决你的问题!

于 2020-06-05T09:56:19.743 回答