【问题标题】:getting the current url from chrome extension从 chrome 扩展获取当前 url
【发布时间】:2013-07-20 10:46:23
【问题描述】:

如果当前选项卡不是同一个网站,我正在制作一个 chrome 扩展程序来打开一个网站,所以我设法获得了这样的所有选项卡:

chrome.tabs.getAllInWindow(null, allTabs);

我写了一个函数来显示它:

   function allTabs(tabs) {
        var tabsURLS = '';
        for (var i = 0; i < tabs.length; i++) {
            tabsURLS = tabs[i].url + '\n';
        }
        alert(tabsURLS);
    }

但我需要获取当前页面的 url,所以我可以通过以下方式获取当前选项卡:

var object=chrome.tabs.getCurrent(function(){;});

但我无法访问 idurl 等页面属性,并且此警报显示“未定义”...

alert(object);

虽然此警报根本不起作用

alert(object.id);

最后,我读到了这个页面chrome.tabs,当我读到这行时我很震惊

获取当前
chrome.tabs.getCurrent(函数回调)
获取执行此脚本调用的选项卡。如果从非选项卡上下文(例如:背景页面或弹出视图)调用,则可能未定义。

所以我不认为有从 chrome 扩展获取当前打开的标签的解决方案......

【问题讨论】:

标签: google-chrome-extension


【解决方案1】:

我认为您需要改用 getSelected

<html>
<head>
<script>

    chrome.tabs.getSelected(null, function(tab) {
        var tabId = tab.id;
        var tabUrl = tab.url;

        alert(tabUrl);
    });

</script>
</head>

【讨论】:

  • 现在还有一个问题,url 不会从第一次更新,页面打开两次,当 url 更改时,我必须在扩展上单击两次以打开新标签....有解决办法吗?
【解决方案2】:

最终的代码是这样的,而且运行良好.. :

var tabUrl;
chrome.browserAction.onClicked.addListener(function(activeTab) {
    var x=activeTab.url;
    var newURL = "https://www.google.com";
    if (x!= newURL) {
        //to open a page in a new tab
        chrome.tabs.create({url: newURL,"selected":true});
        //to open the page with the current tab
        chrome.tabs.update(activeTab.id, {url:newURL});
    }

});

【讨论】:

    【解决方案3】:

    当前接受的答案已过期。

    根据MDNtabs.getSelected() 已被贬低

    改用这个:

    tabs.query({active: true})

    【讨论】:

      【解决方案4】:

      确保在 manifest.json 中设置正确的权限以访问选项卡信息:

      "permissions": [
          "tabs",
          "http://*/*"
      ],
      

      之后,您可以通过使用确定URL

      chrome.tabs.getSelected(null, function (tab) {
          alert(tab.url);
      });
      

      【讨论】:

      • chrome.tabs.getSelected 已弃用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2015-12-27
      • 2012-07-25
      • 2013-11-16
      • 2023-04-08
      相关资源
      最近更新 更多