我正在尝试使用Chrome扩展程序中的javascript注入在网站上自动填充表单。我一直在HTML下拉菜单中使用.querySelector
来“选择”选项。对于此目标站点上的某些菜单,一旦用户选择了选项,就会通过ajax生成选项。 .querySelector
无法正确复制某些哄骗AJAX响应的行为;基本上,我无法完成HTML表单,因为没有任何内容触发了使用选项填充<select>
标签的源jquery。
我正在尝试自动选择的表单看起来像这样
<select name="traveling_to[0]" id="traveling_toSelect0" class="travelingToSelect" >
//a bunch of option values
</select>
目标网站上的源JavaScript是这样的(删节...):
$( '.travelingToSelect' ).change( function( e )
{
var destination = this.options[this.selectedIndex].value;
if( ! destination || destination.length == 0 )
return;
//some more conditions here on the site...
var postData = {
destination: destination,
nationality: nationality,
state: state_of_residence,
localCode: 'EN'
};
$.get( '/ajax/ajax.fillPurposes2.php', postData, function( data ) {
for( var n in data ) {
var newPurpose = document.createElement( 'option' );
newPurpose.value = data[n].Code;
newPurpose.innerHTML = data[n].Name;
newPurpose.title = data[n].Name;
newPurpose.description = data[n].Description;
target.appendChild( newPurpose );
//etc...
我用来选择HTML选项的短代码:
function selectOption(formId, selectFormId, HTMLOptionValue) {
var a = document.getElementById(formId);
a.querySelector("#"+selectFormId).value = HTMLOptionValue
}
如何通过javascript注入触发此.change
jquery函数?
编辑:我尝试在选项之间多次运行selectOption
函数,并尝试使用setTimeout
让网站加载其所有脚本,但这些解决方法无效。