如何侦听 Web 应用程序本身发起的 Web 扩展中的 URL 更改?

pau*_*l_h 5 firefox-addon-webextensions

在网络扩展中,我以编程方式注册内容脚本:

browser.contentScripts.register({
    matches: ["https://www.example.com/messages/*"],
    js: [{file: "my-callback-script"}],
    runAt: "document_idle"
});
Run Code Online (Sandbox Code Playgroud)

我注册的页面会更改其自己的 URL,而无需重新加载页面。不,不是 # 右侧的位,而是 # 左侧 URL 的位,但仍然位于同一域/应用程序上。我不认为网络扩展有用于 URL 更改回调的特定 API,仅适用于整页加载。URL 掩码“ https://www.example.com/messages/ *”在之前和之后都是正确的,我希望它能正常工作,但事实并非如此。

我很确定这window.onhashchange不是我想要的,而且window.addEventListener('popstate', listener);看起来也不是我想要的。如何在不每隔几秒轮询一次的情况下执行此操作?