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