0

ページが完全に読み込まれるのを待たずに、フォームが読み込まれたときにフォームを送信したい (非常に時間がかかります)。これが私のコードです。良くないことはわかっています...しかし、他に何も思いつきません。

var element = document.getElementsByName("redirect");

while(!element) {
    element = document.getElementsByName("redirect");
};

element[0].form.submit();

このフォーム要素が読み込まれているかどうかを検出するより良い方法はありますか?

4

2 に答える 2

3

jQuery DOM Ready を使用できます (DOM のみ、画像やその他のリソースの読み込みを待機しません):

$(function(){
  var element = document.getElementsByName("redirect");
  element[0].form.submit();
})

またはDOM準備完了イベントなし。再帰を使用できます。

function checkFormExist(){
  var element = document.getElementsByName("redirect");
  if(element[0] && element[0].form){
    element[0].form.submit();
   } else {
   setTimeout(checkFormExist, 300);//repeat check after 0.3 seconds
  }
}
checkFormExist()

それほど美しくはありませんが、while ループよりはましです。

于 2013-07-26T23:49:02.483 に答える
0

onload要素によっては、属性を JavaScript コールバックに設定できるはずです。例えば:

<form id="submit_me_when_i_load" onload="submit_form">
...
</form>

次に、その上のどこかに Java スクリプト関数を記述しますfunction submit_form(){}

于 2013-07-26T23:49:21.730 に答える