0
我正在尝试制作一个脚本(使用greasemonkey),它将在Facebook的时间日志页面上运行。 该脚本已执行,但我必须重新加载页面才能运行(因为Facebook使用AJAX更改页面)。Ajax:如何检测URL更改与JavaScript而不刷新?
我试过的建议here和使用的hashchange事件:
function check_timeline(){
if (/(allactivity)/g.test($(location).attr('href'))){
return true;
}
return false;
}
$(window).bind('hashchange', function() {
if (check_timeline()){
var observer = new MutationObserver(function (mutations){
detect_node_for_buttons(mutations);
});
}
});
if (check_timeline()){
var observer = new MutationObserver(function (mutations){
detect_node_for_buttons(mutations);
});
}
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: false,
characterData: false,
});
但我还是要刷新使脚本的运行(hashchange似乎没有任何效果)。
我该如何解决这个问题?
如果我理解正确,您还需要捕获不会触发URL更改的AJAX刷新,对吧?如果是这样,查询网址将无济于事。但是你应该可以用'MutationObserver'来做所有事情,或者不? – Siguza
@Siguza URL更改可以通过mutationObserver获得?我不知道,怎么样?我虽然只是关于页面中的节点。 – vmonteco