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\'
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);
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.