1

Chrome 22.0 ではうまくいかないようですが、IE 9.0 では問題なく動作します。jquery.min.js バージョン 1.7.1 を使用しています。

ファイル maint.php (これは少し単純化されています...):

<?php if (isset($_POST['action']) && $_POST['action'] == 'start') {
    ... do stuff ...
    die;
?>
<html><head><script src="jquery.min.js" type="text/javascript"></script></head>
<body>
...
<center>
<form name="maint" method="post" action="maint.php">
<input id="action" type="hidden" name="action" value="noop"/>
<input type="button" value="Start" onClick="submitForm('start')"/>
</form>
<div id="workmsg"></div>
</center>
<script type="text/javascript">
function submitForm(action) {
    $('#workmsg').append('<h3>Please wait...</h3><br/><img src="work2.gif"/>');
    document.getElementById('action').value = action;
    document.maint.submit();
}
</script>
</body></html>

「開始」ボタンをクリックすると、「しばらくお待ちください...」というメッセージが表示され、work2.gif アニメーションが表示され、何らかのアクションが実行される場所で (それ自体に) サブミットされ、メッセージと GIF が表示されます。

または、少なくとも IE9 ではこのように動作します。

Chrome ではメッセージは表示されますが、GIF は表示されません。

理由はありますか?

Chrome を直接参照すると、GIF がレンダリングされます。

4

1 に答える 1

2

これが私が以前に何度も遭遇した「あの古い栗」である場合は、コードの送信行を次のように変更してください...

setTimeout(function() { document.maint.submit(); }, 500);

より短いタイムアウトを試すこともできますが、以前に見たのと同じ問題が発生していると仮定すると、それで十分です。ブラウザは、送信が開始される前にイメージ要素を初期化するのに少し時間がかかるだけかもしれません。

于 2012-10-17T15:33:14.810 に答える