尝试检查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();