Selecting

后端 未结 2 653
灰色年华
灰色年华 2021-02-10 03:40

I\'m hoplessly trying to activate a change() event from a chrome content script. I\'ve gone past through of the website and google posts, but still nothing works.

here\'

相关标签:
2条回答
  • 2021-02-10 03:55

    I dont really know JQuery, but here's how to do it without JQuery and without injecting anything into the page....

    var selections = document.querySelector('#woot');
    
    selections.value = 17;
    
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", true, true);
    selections.dispatchEvent(evt);
    
    0 讨论(0)
  • 2021-02-10 03:59

    You can append a script. It'll take a lot of script appends but you can always put a custom communication event, and only inject one good script listening to that custom event and eval()ing the event data. It will work if there's no CSP.

    var RunInThisContext = function(c){ try{
        var code = document.createTextNode(c);
        var script = document.createElement('script');
        script.type='text/javascript';
        script.language='javascript';
        script.appendChild(code);
        try{document.body.appendChild(script);}catch(e){document.head.appendChild(script);}
    
    }catch(e){ console.error('ERROR: '+e); }}; 
    

    Use like this:

    RunInThisContext('('+(function(){ 
         $('select').change();
    }).toString()+'()); '); 
    

    But bear in mind you're running this directly into the page. If page doesn't have jQuery you'll have to include it first.

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