让浏览器扩展在页面加载时运行,在经典mpa的内容脚本中设置是非常直接的。
然而,对于像SveleKit这样的混合方法,它在初始SSR之后以SPA风格处理导航,我仍在试图找出在每个导航上执行外部浏览器扩展内容脚本的最佳方法。
由于URL在导航上明显改变-无需重新加载-我想应该可以侦听连接的窗口事件。
我试着听popstate
,但无法看到这样一个监听器的任何输出:
window.addEventListener('popstate', function (event) {
console.debug(event.state)
})
代替使用旧的历史API及其popstate
和hashchange
事件,使用侦听navigation
事件的新导航API奇妙地解决了这个问题:
navigation.addEventListener('navigate', (navigationEvent) => {
// check on the event if we really want to run custom logic here
// end then run our custom logic
})
感谢@wOxxOm指出这一点。