Jquery 在IE中提交动画问题
我以前一直在处理这个问题,但问题似乎又回来了。让我解释一下 我有一个网页,允许用户上传一个大文件,之后ASP.NET服务器端脚本可能需要几秒钟的时间来处理它。与此同时,我想在web浏览器中显示加载程序/微调器动画,以防止用户再次单击提交按钮 我使用了以下JQuery代码:Jquery 在IE中提交动画问题,jquery,asp.net,internet-explorer,animated-gif,Jquery,Asp.net,Internet Explorer,Animated Gif,我以前一直在处理这个问题,但问题似乎又回来了。让我解释一下 我有一个网页,允许用户上传一个大文件,之后ASP.NET服务器端脚本可能需要几秒钟的时间来处理它。与此同时,我想在web浏览器中显示加载程序/微调器动画,以防止用户再次单击提交按钮 我使用了以下JQuery代码: $('#ButtonImportData').click(function () { $('.importSubmitSpinner').css('display', 'inline'); } 以下是微调器图像的HT
$('#ButtonImportData').click(function () {
$('.importSubmitSpinner').css('display', 'inline');
}
以下是微调器图像的HTML:
<img src="Graphics/spinner_big.gif" width="28" height="28" class="importSubmitSpinner" alt="Spinner" />
spinner_big.gif是一个简单的gif文件,带有一个动画,用于向用户发出页面正在加载的信号
上述方法几乎适用于所有浏览器,除了。。。猜猜是哪一个?是的!IE中发生的情况是,用户单击ButtonImportData按钮后,会显示微调器,但动画会立即停止,基本上会给用户一个错误的指示,即页面挂起,提示他们再次单击submit,这与我想做的相反
我很久以前就停止使用IE了,但很明显,大约有一半的互联网社区仍然在使用它。伙计,人们怎么能用那块*&^%?无论如何,这不是一个问题:)问题是,如何使这个简单的任务在IE中工作,并使我的动画实际播放
另外,我一直在用IE9或Windows7当前的“网络之美”进行测试
编辑:
多亏了ShadowScripter,我找到了解决办法。以下是对我有效的方法:
1将以下内容添加到HTML中,以确定我们是否在IE上运行(因为我们不需要对任何其他web浏览器进行此“黑客攻击”):
我似乎无法在任何IE版本中复制您的问题 我试过了 可能有很多不同的原因导致你的不起作用
- 其他代码可能会干扰
- GIF图像有问题
- 客户端计算机;工作量
.show()
而不必执行.css(“显示”、“内联”)
操作。如果未指定任何显示模式,JQuery可以确定元素应具有的默认显示模式。试试这个,效果很好
setTimeout(function() {
('.out').css("display","none");
$('#load').show();
return true;
}, 100);
延迟100毫秒,实际显示加载器图像 你说的是哪个版本的IE?你试过jQuery BlockUI插件吗。它似乎与浏览器兼容。。。这完全让我困惑。这里可能是什么情况?在这个简单的例子中,它工作得很好。我从我的脚本运行相同的脚本、相同的图像等,它不会旋转!在我的例子中,这个页面是由一个ASP.NET脚本组成的,如果打开它以HTML的形式查看,它会添加大量的东西/垃圾。。。妈的,小姐!无论如何,问题不在于你提供了什么。除非你想让我调试你的整个网站,否则我帮不了你多少忙,而且我也不准备这么做;)我更新了它在我的代码中是如何工作的:但为什么不在我的页面中呢???这简直让我发疯,在这上面浪费时间*&^%!!!!看一看,可能是你浏览器的安全设置,或者如果你在一个页面上有很多东西,它可能会被DOM读取卡住。运行您的页面以检查是否有任何错误。这就是@ShadowScripter上面的链接所做的(检查注释)。顺便说一句,仍然不能在IE10中工作,或者不管它现在是什么…这个特定的解决方案帮助了我的非asp相关问题。谢谢
<![if !IE]>
<script type='text/javascript'>
var bNotIE = 1;
</script>
<![endif]>
<img src="Graphics/spinner_big.gif" width="28" height="28" class="importSubmitSpinner" alt="Spinner" id="imgSpinnerImport" />
$('#ButtonImportData').click(function () {
//For "normal" browsers
$('.importSubmitSpinner').show();
if (typeof (bNotIE) == 'undefined') {
//The following must be done only in case of IE
//NOTE: We need to load the same file but with a different name
// because if you don't change the file name it won't work!
setTimeout('document.images["imgSpinnerImport"].src = "Graphics/spinner_big_ie.gif"', 200);
}
}
setTimeout(function() {
('.out').css("display","none");
$('#load').show();
return true;
}, 100);