Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Hide()div不适用于IE,但适用于Chrome/firefox_Javascript_Jquery_Cross Browser - Fatal编程技术网

Javascript Hide()div不适用于IE,但适用于Chrome/firefox

Javascript Hide()div不适用于IE,但适用于Chrome/firefox,javascript,jquery,cross-browser,Javascript,Jquery,Cross Browser,其思想是在图像加载时显示加载div,完成后隐藏div。这段代码可以在Chrome/firefox上运行,但不能在IE上运行。你知道吗 Html文件 //image <img src="image.php" class="loading"> //loading tag <div id="loaddiv"> <div id="loading_float"><img src="src/img/loading.gif"> <br&g

其思想是在图像加载时显示加载div,完成后隐藏div。这段代码可以在Chrome/firefox上运行,但不能在IE上运行。你知道吗

Html文件

//image
<img src="image.php" class="loading">

//loading tag
<div id="loaddiv">
    <div id="loading_float"><img src="src/img/loading.gif">
    <br>Loading..
    </div>
</div>
var imgs_count=0, imgs_loaded=0;
$(function(){
$loading = $('.loading');
if($loading.size()>0){
    $loading.load(function(){
        $('#loaddiv').hide();
    });
}else{
    $('#loaddiv').show(); 
}
});

您无法可靠地使用javascript将onload处理程序附加到页面HTML中的图像。这是因为,在javascript有机会运行并找到这些DOM元素之前,页面DOM(以及它所指的图像)开始加载时,图像可能已经在javascript运行之前加载。在IE中,一旦图像进入浏览器缓存,这个问题就更严重了,因为在这种情况下,IE几乎是在瞬间加载图像

有两种可能的解决办法:

  • 使用onload属性在实际HTML中指定onload处理程序
  • 不要将图像放在页面的HTML中。在图像对象上设置
    .src
    属性之前,使用javascript动态创建它们并分配onload处理程序,以确保不会错过onload事件
  • 当javascript运行时,在安装加载处理程序之前,检查映像是否已加载,并相应地执行操作

  • 检查firebug中的控制台,我的任何JS错误也可能与您的情况有关。好的,有意义!我在回答中提出了两个备选方案。