我有一个谷歌浏览器扩展。在 background.js 文件中,它包含这个监听器:
chrome.webRequest.onBeforeRequest.addListener(function(info)
{
console.log("On Before request info", info);
},
{
urls:
[
"<all_urls>"
]
},
[
"blocking"
]
);
我告诉谷歌浏览器使用“--app”命令行参数打开,它打开的 html 页面包含:
<script type="text/javascript">
let url = new URL(window.location.href);
let targetUrl = url.searchParams.get("targetUrl");
if(targetUrl != null)
{
targetUrl = unescape(targetUrl);
console.log("The target url is:", targetUrl);
window.location.href = targetUrl;
}
</script>
它从 params 中获取一个 url,然后导航到它。
问题是我的 google chrome 扩展的监听器没有被触发。
我发现如果我将其设置为以 1 秒超时进行重定向。
然后它会按预期触发。
这让我相信我的扩展的 background.js 文件在第一页加载之前没有执行。
如何让谷歌浏览器确保在加载第一页之前加载和初始化所有扩展?