2013-04-23 25 views
2

有一個頁面像這樣用一個空跨度加載:<span id="bla"></span>和更高版本用一些文本填充該跨度。使Greasemonkey對元素的阿賈克斯變化做出反應

我需要我的腳本來獲取該文本,但Greasemonkey在填充文本之前運行,甚至是我嘗試使用的waitForKeyElements函數都無濟於事,因爲該元素在頁面加載時已存在。

也許我需要另一種方式?目前我做的:

waitForKeyElements ("#bla", get_span_content) 

回答

2

既然你已經使用waitForKeyElements,用行動,函數的返回值進行微調的結果。如果跨度不僅填補/換一次,代碼是這樣的:

waitForKeyElements ("#bla", get_span_content); 

function get_span_content (jNode) { 
    var spanText = $.trim (jNode.text()); 

    if (spanText == "") { 
     //-- Still blank; tell waitForKeyElements to keep looking. 
     return true; 
    } 
    else { 
     // DO WHATEVER WITH spanText HERE. 
    } 
} 



如果相同跨度多次更改,代碼看起來像這樣:

waitForKeyElements ("#bla", get_span_content); 

function get_span_content (jNode) { 
    var spanText = $.trim (jNode.text()); 
    var lastText = jNode.data ("lastText") || ""; 

    if (spanText != lastText) { 
     // DO WHATEVER WITH spanText HERE. 

     jNode.data ("lastText", spanText); 
    } 

    return true; 
} 
+0

工程就像一個魅力。也感謝在問題 – blues 2013-04-23 12:56:58

+0

中更好的格式化不客氣;樂意效勞。 – 2013-04-23 13:10:54