元素一次又一次地运行

时间:2014-02-11 07:07:01

标签: javascript greasemonkey

我正在尝试使用GreaseMonkey脚本执行onchange函数,我正在使用此代码:

var element = document.getElementById("country");

if ('fireEvent' in element)
    element.fireEvent("onchange");
else {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);
}

document.getElementById("country").value = "3";

但是它一次又一次地执行/重新加载,那么我怎么能只执行一次呢? 我正在尝试在这个HTML代码上执行脚本:

<select name="country" id="country" onchange="form.submit()" style="width:300px;">
                    <option value="0">Select Country</option>
                    <option value="1">US</option>

                  <option value="2">UK</option>

                  <option value="3">FR</option> 
</select>

2 个答案:

答案 0 :(得分:0)

每次对select进行更新时都会触发Onchange。加载后,对select元素进行更新,将第一个元素设置为selected。这会自动触发表单提交。如果表单上没有action属性,则会将其提交到同一页面,或者操作是否在同一页面上。整个周期再次开始。

答案 1 :(得分:0)

  1. 所以你加载HTML

  2. 触发事件onchange

  3. 触发form.submit()

  4. 将您带到第1步?

  5. 感觉onchange="form.submit()"是罪魁祸首。但你需要分享更多。