【问题标题】:Make Greasemonkey react to ajax change of an element让 Greasemonkey 对元素的 ajax 更改做出反应
【发布时间】:2013-04-23 11:28:07
【问题描述】:

有一个页面加载了一个像这样的空范围:<span id="bla"></span>,然后用一些文本填充该范围。

我需要我的脚本来获取该文本,但 Greasemonkey 在它被文本填充之前运行,甚至我尝试使用的 waitForKeyElements 函数也无济于事,因为页面加载时元素已经存在。

也许我需要另一种方式?目前我正在做:

waitForKeyElements ("#bla", get_span_content)

【问题讨论】:

    标签: javascript greasemonkey


    【解决方案1】:

    由于您已经在使用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.
         }
    }
    



    如果 same 跨度多次更改,代码将如下所示:

     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;
    }
    

    【讨论】:

    • 就像一个魅力。也感谢问题中更好的格式
    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2014-05-02
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多