Chrome:获取活动内容脚本选项卡的 URL

问题描述 投票:0回答:2

我有一个内容脚本,当用户连接到

"*://www.youtube.com/*"
时运行。我需要知道 URL 何时更改,因为 YouTube 不会在您点击链接时打开新的“页面”;相反,它会更改 URL 和页面内容(我认为)。因此,我的内容脚本没有意识到任何事情发生了变化。 (我知道这一点是因为当我重新加载页面时它确实有效)

那么我如何知道我的脚本运行的选项卡的 URL 何时发生了变化?

[编辑]:我的问题涉及具体获取内容脚本正在运行的选项卡的 URL,而不是获取活动选项卡的 URL。

javascript google-chrome-extension content-script
2个回答
42
投票

location.href
是获取活动 URL 的简单方法 https://developer.mozilla.org/en-US/docs/Web/API/Window/location


0
投票

在后台脚本中,您可以侦听选项卡事件并将其发送到内容脚本。一个例子是这样的,

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  if (changeInfo.url) {
    chrome.tabs.sendMessage(tabId, { tabChanged: true, title: tab.url });
  }
});

它检查选项卡 url 是否正在更改,然后将当前 url 发送到内容脚本。在内容脚本上,可以通过监听后台脚本发送的事件来收集信息

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
   if (message.tabChanged === true) {
    console.log("url changed")
  }
});

© www.soinside.com 2019 - 2024. All rights reserved.