提交表单后保持动画 GIF

Keep an Animated GIF Going After Form Submits

提问人:Andrew G. Johnson 提问时间:4/22/2009 更新时间:4/22/2009 访问量:1508

问:

以下内容在 ie6、ie7、chrome 中对我有用,但不适用于 ff3

document.getElementById("form-name").submit();
var image = document.getElementById("loader-img");
setTimeout(function() { image.src = image.src; },50);

我能做些什么来提高一致性?

JavaScript 的HTML

评论

0赞 Andrew G. Johnson 4/22/2009
动画 GIF 停止动画

答:

0赞 Thinker 4/22/2009 #1

尝试将 src 设置为空白,然后再次设置为 image。第二个更改可能还需要稍后调用 (settimeout)。

评论

0赞 Andrew G. Johnson 4/22/2009
添加: image.src = “ ”;到函数的开始,没有看到任何变化
1赞 knut 4/22/2009 #2

您应该异步执行发布,否则 UI 可能会挂起。有关更多信息,请查看 jQuery 表单插件

评论

0赞 Andrew G. Johnson 4/22/2009
说实话,这不是表单提交,而是 document.location=“url”;叫
0赞 knut 4/22/2009
我想我不明白你想告诉我什么。请告诉我为什么我的答案不能解决您的问题?
0赞 pluckyglen 4/22/2009 #3

您是否尝试过删除映像节点并替换它?像这样:

var image = document.getElementById("loader-img");
image.parentNode.removeChild(image);
image.parentNode.appendChild(image);

(您可能还需要在 remove 和 append 调用之间执行。image.cloneNode(true)

显然,你的 HTML 需要结构化,这样就不会破坏显示。

但是,knut 所说的适用(发布到隐藏的 IFRAME 或使用 XHR 会给你更多的控制权)。而且我不确定您所说的“这不是表单提交,而是 document.location='url' 调用”是什么意思,所以如果您澄清用例和工作流程,我可能会提供更多帮助。