【问题标题】:Google Chrome DevTools Extension - Detect Page ChangeGoogle Chrome DevTools 扩展 - 检测页面更改
【发布时间】:2015-04-17 12:17:10
【问题描述】:

我正在尝试检测网页何时从 Google Chrome DevTools 扩展更改。

我目前有一个 devtools.htmldevtools.js 来检测条件是否为真,如果是,它会添加开发工具面板。

chrome.devtools.inspectedWindow.eval(/*my test*/, function (result, exception) {
    if ( exception === undefined && result === true ) {
        chrome.devtools.panels.create("My Panel", "", "panel.html", function (panel) {
            ...

问题是,如果我打开开发工具,然后然后导航到另一个页面,它不会重新评估条件并添加面板。我必须关闭并重新打开开发工具。

认为可以使用我也传递 tabId 但没有研究如何 做这件事,但如果有一个我忽略的非常简单的技术,我不想走那条路。

此外,我还没有找到任何有关删除面板的信息,如果以前满足条件,但在页面导航后不再满足。

【问题讨论】:

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


    【解决方案1】:

    https://developer.chrome.com/extensions/devtools_network#event-onNavigated

    chrome.devtools.network.onNavigated.addListener(
        function(requesturl) {
            console.log('Navigating toooooo: ' + requesturl);
        });
    

    【讨论】:

    • 我是在一个大型旧项目上做的,不再使用它,但在我看来它应该可以工作。所以你得到复选标记..
    【解决方案2】:

    是的。我认为您可以改用chrome.tabs.onUpdated。检测状态变化的示例代码可以是:

    chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
        if (changeInfo.status == 'complete') {
         }
    });
    

    【讨论】:

    • chrome.tabs 在 devtools 页面上未定义。即使我在清单中有"permissions": ["tabs"],
    • chrome.tabs 仅在后台脚本和弹出脚本中可用。
    • 你是 100% 正确的,所以我想知道你为什么在知道我提出的建议不涉及背景的情况下提出这个?
    • 我以为您提到过您想知道如何在问题中使用背景页面。
    • 对不起,我重新阅读了我的写作方式,我可以看到它听起来如何,主要是“试图寻找另一种方式”。我猜没有。我会为你的帮助投票,但我会等着看是否有更多回应接受的答案。
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多