我似乎无法在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。
知道为什么吗?
如果直接浏览GIF,Chrome会渲染GIF。
答案 0 :(得分:2)
如果这是我以前多次遇到的“那个老板栗”,请将提交的代码行更改为此...
setTimeout(function() { document.maint.submit(); }, 500);
你可以尝试更短暂的超时,但这应该足够了,假设你遇到了我之前见过的同样的问题。在提交被触发之前,浏览器可能只需要很短的时间来初始化图像元素。