5

Google Chrome 扩展 API 使用 chrome.devtools.inspectedWindow 提供有关当前打开窗口的信息,但它不提供更改时的事件。我可能会刷新或重定向页面,并且我希望我添加的 DevTools 面板能够收到通知。有办法吗?

想想元素面板,它总是与当前的 DOM 保持同步。每当发生 DOM 突变时,为了保持最新状态,这可能很难实现,但我希望至少在加载新页面时得到通知(可能在 document.onload 事件中,为什么不)

关于如何实现这一点的任何想法,谢谢?

4

2 回答 2

10

监听其中一个chrome.webNavigation事件,并在发生更新时通知开发工具。

另一种检测被检查页面正在卸载的方法是使用chrome.devtools.network.onNavigated事件(仅在您的 devtools 扩展页面中可用)。

于 2013-07-30T14:23:18.670 回答
5

我有同样的挑战,这是我在谷歌中找到的唯一结果,所以我想用我找到的解决方案来回答。关键不在于chrome.devtools.inspectedWindow,而在于chrome.tabs.onUpdated。事实上,我发现chrome.tabs.*总的来说它更有用。这是我用来观察扩展程序状态变化的代码;

chrome.tabs.onUpdated.addListener(function (tabId, changes, tabObject) {
  console.log("Status of", tabId, "is", changes.status);
  if (changes.status == "complete") {
    console.log("Tab Load Complete");
  }
});

您还可以使用chrome.tabs.*API 检查当前选项卡上是否发生状态更改。

于 2014-06-20T14:05:25.467 回答