Javascript 当“";document.location.href";

Javascript 当“";document.location.href";,javascript,gif,Javascript,Gif,我在javascript中有这个函数: function loadPage (url){ showLoadPageGif(); // visibility On document.location.href = getPath + "/" + url ; } 当我使用此功能时,GIF图像显示在屏幕上,但不起作用。 以前有人因为这个问题打过架?thnx我想你的意思是“GIF动画停止” 这是正确的行为。由于转到新页面,旧页面的所有资源都将被释放。这当然包括GIF本身 您

我在javascript中有这个函数:

function loadPage (url){
  showLoadPageGif();         // visibility On
  document.location.href = getPath + "/" + url ;  
}
当我使用此功能时,GIF图像显示在屏幕上,但不起作用。 以前有人因为这个问题打过架?thnx

我想你的意思是“GIF动画停止”

这是正确的行为。由于转到新页面,旧页面的所有资源都将被释放。这当然包括GIF本身

您不会“看到”这种情况,因为当您分配
location.href
时,浏览器不会浪费任何时间呈现空白页面

您需要做的是使用AJAX请求新页面,然后在成功处理程序中用新页面替换整个DOM


IE6中有一个bug,当您启动AJAX请求时会停止动画;要解决此问题,只需再次指定图像的
src
属性(即
img.src=img.src;
)即可重新启动它们。

您使用的浏览器是什么?如果您正在使用IE,我需要做同样的一次,请执行以下操作:

var loadingFigure = $('#myImage');
var html = loadingFigure.html();            
window.location.href = 'myImage';
loadingFigure.html(html);
对于firefox,您需要使用iframe并执行以下操作:

<iframe id="myIframe" src="/images/busy.gif" scrolling="no" frameborder="0"></iframe>

$('#myIframe').attr('src', '/images/busy.gif');
window.location.href = 'mylocation'       
$('#myIframe').attr('src', '/images/busy.gif'); 

$('#myIframe').attr('src','/images/busy.gif');
window.location.href='mylocation'
$('#myIframe').attr('src','/images/busy.gif');

我最近遇到了这个问题,使用动画SVG作为伪元素中的背景图像。我故意在我的Web服务器上设置了一个很大的延迟,这样我就可以在
window.location=url奇怪的是,所有其他CSS动画和悬停仍在工作,但SVG cog只是卡住了

在玩了一些游戏之后,我发现如果我提交了一个GET表单,而不是更改
window.location
,动画将继续运行

var url;
//load & setup loading animation
//then generate and submit form with a slight delay
setTimeout(function(){
  var new_form;
  new_form = document.createElement('form');
  new_form.method = 'GET';
  new_form.action = url;
  document.body.appendChild(new_form);
  new_form.submit();
}, 100)

在safari 5.1、firefox 24、chrome 32上测试过,你知道你在重定向,对吗?是的,我重定向对了。+1,虽然除非需要,否则我不会使用AJAX,但你知道,AJAX并不总是好的。你知道一个不需要AJAX的解决方案吗?@gdoron:任何类型的动画都应该在加载新页面时停止。Flash可能会存活更长时间,但这更多的是一个bug,而不是一个可靠的功能。我知道。。。这是正确的答案,但我还是不会用它。gif部分很好,但如果它让您在不打算更改的情况下更改为AJAX,则会很尴尬。如果他真的需要GIF、AJAX……这个解决方案对我来说比使用iframe的解决方案效果更好。事实上,iframe解决方案根本不起作用。