检查SPA上的网址更改

时间:2018-06-06 10:00:26

标签: reactjs google-chrome-extension addeventlistener

尝试检查YouTube的网址更改时间,我已尝试使用onpopstate以及onhashchange,但onpopstate在网址更改时不会记录或执行任何操作,并且只有在刷新页面时才会触发onhashchange,但不会在网址发生了变化。 StackOverflow对此提到的很多其他答案使用这些方法,但它们似乎不起作用,我使用chrome-react-extension进行此操作。

基本代码如下所示:

if (/youtube\.com\/watch(.*)+/.test(window.location.href)) {
  if ("onhashchange" in window) {
    console.log('hash change');
  }
}

我也尝试过:

window.onpopstate = function(event) {
  alert("location: " + document.location + ", state: " + 
JSON.stringify(event.state));
};

跟随wOxxOm提供的链接。在第一次刷新页面但不在导航时触发,与onhashchange事件相同。代码如下:

function afterNavigate() {
if ('/watch' === location.pathname) {
        alert('Watch page!');
    }
}
(document.body || document.documentElement).addEventListener('transitionend',
  function(event) {
    if (event.propertyName === 'width' && event.target.id === 'progress') {
        afterNavigate();
    }
}, true);
// After page load
afterNavigate();

0 个答案:

没有答案