Greasemonkey Jquery Script to Click Links

后端 未结 3 951
我寻月下人不归
我寻月下人不归 2020-12-10 23:19

I\'m trying to do my first greasemonkey script. I\'m fairly new to jquery and javascript, so be easy on me.

Here is what I have so far.

// ==UserScri         


        
相关标签:
3条回答
  • 2020-12-10 23:47

    If you have jQuery loaded on the page you could just trigger the click event using jQuery

    0 讨论(0)
  • 2020-12-10 23:51

    See: wiki.greasespot.net/Generate_Click_Events .

    That Reddit link fires JavaScript and not JS that was set with jQuery.

    Which means that in this case, you need to send an actual mouse event, like so:

    setInterval ( function () {
    
        var clickEvent  = document.createEvent ("HTMLEvents");
        clickEvent.initEvent ("click", true, true);
    
        $("a:contains('load more comments')")[0].dispatchEvent (clickEvent);
    }, 10000);
    

    Oops! I did not see that the question mentioned clicking "all of the 'load more comments'". (And that page has hundreds of them!)

    To do that, use jQuery's each() function...

    setInterval ( function () {
    
        var moreLinks       = $("a:contains('load more comments')");
    
        moreLinks.each ( function () {
    
            var clickEvent  = document.createEvent ("HTMLEvents");
            clickEvent.initEvent ("click", true, true);
            this.dispatchEvent (clickEvent);
        } );
    }, 10000);
    
    0 讨论(0)
  • 2020-12-10 23:54

    You are trying to simulate click event but this only works on events attached with jQuery. Events on load more comments links at reddit attached using html attributes. I.e:

    onclick="return morechildren(this, 't3_i7hb5', 'c21ko21,c21kesz,c21klil,c21ko45,c21kro5,c21l90v,c21lo38', 3, '')"
    

    to solve your problem you need to extract values from this attributes and call them separately.

    0 讨论(0)
提交回复
热议问题