问问题
3856 次
2 回答
11
我真的不知道 JQuery,但这里是如何在没有 JQuery 并且不向页面中注入任何东西的情况下做到这一点......
var selections = document.querySelector('#woot');
selections.value = 17;
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", true, true);
selections.dispatchEvent(evt);
于 2012-07-09T11:23:54.213 回答
1
您可以附加脚本。这将需要大量脚本附加,但您始终可以放置一个自定义通信事件,并且只注入一个好的脚本来监听该自定义事件并eval()
获取事件数据。如果没有 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); }};
像这样使用:
RunInThisContext('('+(function(){
$('select').change();
}).toString()+'()); ');
但请记住,您是直接将其运行到页面中。如果页面没有 jQuery,则必须先包含它。
于 2012-07-09T01:16:19.293 回答