Javascript 在Chrome上检测此事件:更改URL更改而不重新加载
我有一个网站,在Chrome上使用以下命令更改URL而无需重新加载:Javascript 在Chrome上检测此事件:更改URL更改而不重新加载,javascript,jquery,html,google-chrome,Javascript,Jquery,Html,Google Chrome,我有一个网站,在Chrome上使用以下命令更改URL而无需重新加载: window.history.pushState(“object or string”, “Title”, “/new-url”); 有没有办法从Javascript中检测这样的事件? 我试过这个,但不起作用: $(window).bind('hashchange', function() { alert("CHANGED!!"); }); 仅适用于Chrome扩展 鉴于: var stateObj = { f
window.history.pushState(“object or string”, “Title”, “/new-url”);
有没有办法从Javascript中检测这样的事件?
我试过这个,但不起作用:
$(window).bind('hashchange', function() {
alert("CHANGED!!");
});
仅适用于Chrome扩展 鉴于:
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "yourwebsite.com/page2");
您可以通过以下方式检测它:
chrome.webNavigation.onHistoryStateUpdated.addListener(function(e) {
console.log(e);
}, {url: [{hostEquals: 'yourwebsite.com'});
仅适用于Chrome扩展 鉴于:
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "yourwebsite.com/page2");
您可以通过以下方式检测它:
chrome.webNavigation.onHistoryStateUpdated.addListener(function(e) {
console.log(e);
}, {url: [{hostEquals: 'yourwebsite.com'});
你为什么不触发你自己的定制活动呢?这个网站不是我的,是松弛的。我只是在写一个Chrome扩展…我的意思是,如果是你自己的代码调用了
pushState
,那么就在那之后,触发任何自定义事件(例如popstate事件),很遗憾,这不是我自己的代码。我的Chrome扩展需要检测URL更改。即使需要计时器和循环,也可以这样做吗?您只需重新定义history.pushState
函数,添加自定义事件逻辑,然后应用
原始函数即可。请参阅以下答案:。你只需要使用内容脚本在加载时将其注入页面。为什么不触发你自己的自定义事件呢?该网站不是我的,是SLACK。我只是在写一个Chrome扩展…我的意思是,如果是你自己的代码调用了pushState
,那么就在那之后,触发任何自定义事件(例如popstate事件),很遗憾,这不是我自己的代码。我的Chrome扩展需要检测URL更改。即使需要计时器和循环,也可以这样做吗?您只需重新定义history.pushState
函数,添加自定义事件逻辑,然后应用
原始函数即可。请参阅以下答案:。您只需要在加载时使用内容脚本将其注入页面。