除非我单击弹出按钮,否则不会触发 Chrome 扩展 OnBeforeRequest

问题描述

我正在构建一个 chrome 扩展,它需要重定向某个页面的脚本。我的 background.js 包括:

    chrome.webRequest.onBeforeRequest.addListener(
        function(details) {
            if (/js\example.js/.test(details.url))
                // setTimeout(requestScript(details),0);
                return { 
                    redirectUrl: chrome.extension.getURL("novoScript.js")
                }
        },{urls: ['*://*.example.com/*.js']},["blocking"]
    );

manifest.json 包括:

"background": {
    "scripts": ["background.js"],"persistent": true
},

它按预期工作,但该功能仅在我单击弹出按钮后重新加载页面时运行。我第一次在新选项卡中打开页面时,它没有运行。如果我在页面中,并且单击了弹出按钮,则它始终有效。如果我没有点击,无论我重新加载多少次,重定向都不起作用。

我试过擦除 popup.js 的全部内容,没有任何区别,所以不是因为那里有任何代码。

另外,我已经检查过 background.js 文件没有再次运行,所以看起来监听器在那里,但是如果我不点击弹出按钮它就不会监听。我还在监听器函数中添加了 console.log,在我点击按钮之前,它只记录对 'aobut:blank' url 的调用。

我想让监听器在不点击弹出窗口的情况下工作,以避免不一致。任何帮助表示赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)