我正在使用我的GM腳本來鏈接多個頁面。如果我創建一個只包含以下代碼的腳本:(我使用jQuery的BTW)Greasemonkey沒有看到在Facebook上對DOM做出的更改
$(".rfloat.uiButton").trigger('click');
它會喜歡的列表中的頁面數。但底部有一個按鈕,顯示「查看更多結果」。這些正由Ajax加載。所以,我更新了我的腳本來監聽元素被attatched到DOM,像這樣:
$("#pagelet_search_results_objects").bind("DOMSubtreeModified",HandleDOM_ChangeWithDelay);
var zGbl_DOM_ChangeTimer = null;
function HandleDOM_ChangeWithDelay (zEvent) {
if (typeof zGbl_DOM_ChangeTimer == "number") {
clearTimeout (zGbl_DOM_ChangeTimer);
zGbl_DOM_ChangeTimer = '';
}
zGbl_DOM_ChangeTimer = setTimeout (HandleDOM_Change, 333);
}
function HandleDOM_Change() {
alert("New content loaded"); // This fires once
$("a.rfloat.uiButton").trigger('click');
}
的火災警報後,我點擊「查看更多結果」和新的頁面結果被添加到DOM。但點擊觸發器不會觸發。就好像通用汽車沒有看到已經應用到DOM的變化。
這是爲什麼?
編輯:
在做
alert($("a.rfloat.uiButton").length);
它顯示的更新數量,但仍然沒有點擊它們。