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 がレンダリングされます。