$(window).load Chrome,Safari问题

时间:2011-09-21 00:20:18

标签: jquery google-chrome safari load

好的,这是问题

$(window).load(function () {
        \\Do something
    });

和其他变种只是在chrom和safri中不起作用。 FF,IE歌剧工作很好我搜索但没有找到任何工作的解决方案有人知道如何检查铬,Safari页面加载完成后?

7 个答案:

答案 0 :(得分:6)

如果您想在页面加载时执行某些操作,可以尝试以下代码之一。

$(document).ready(function(){
    //Page loaded
});

OR

$(function(){
    //Page loaded
});

编辑:试试这个

window.onload = function(){
   //Page loaded
};

或者如果你想使用jQuery,那么试试这个

$(window).bind('load', function(){
   //Page loaded
});

答案 1 :(得分:1)

window.loaddocument.ready都适合我,这里是fiddle

答案 2 :(得分:1)

我有一个可以在FF中正常加载的页面,但在Chrome中不起作用,因为我有2个脚本使用$(window).load(function(),而第2个似乎在图像出现之前执行。

第一个脚本检查缺失的图像并替换错误图像:

   $(window).load(function() {
    $("img").each(function(){
      var image = $(this);            
      if(image.context.naturalWidth == 0 ||
      image.readyState == 'uninitialized'){   
         $(image).unbind("error").attr(
             "src", "assets/img/image_missing.jpg"
         );
      }
 });
});  

第二个函数重新排列行上的元素,以防窗口调整大小(它是一个响应页面):

$(window).load(function() {
        columnConform();
});

当我在Chrome中使用调试时,第一个函数被执行,但是当执行第二个函数时,任何丢失的图像都没有显示。它们仅在第二个功能完成后出现。

首次加载页面时,找不到“Socketry”的图像,因此Spanners / Metric / Imp会立即显示在同一行的下方。

第二个脚本重新对齐行,假设这是正确的,但是当显示“Image Missing”时,这会强制扳手进入下一行。

“Image Missing”应该在行对齐之前显示,在这种情况下,行将正确对齐,就像在Firefox中一样。

* 我会张贴屏幕截图,但我没有10个声望 - ggrrrhh!有时一张照片值1000字...... *

猜猜我最好用文字解读页面......

我有13个图像显示为6行,所以2个完整行和1个第3行。 无法找到第6张图像,因此第7张图像显示在顶行的缺失图像符号下方,而不是第2行的第1张图像。 第二个脚本对齐行,假设第7个图像位于顶行,然后第一个脚本显示“图像缺失”图像,这会强制第7个图像到第2行,就像它自己一样。 加载所有图像后,需要执行第二个脚本。 希望这是有道理的。

答案 3 :(得分:0)

我认为这不会回答您的问题,但在我的情况下load()单独在Chrome中无效,因为我试图加载到另一个{{1}内的<form> }}。 Chrome完全忽略了内部<form>的存在。

尝试下载未压缩的jQuery版本并进行调试。

答案 4 :(得分:0)

在localhost上工作时,某些浏览器(我在Opera和Chrome中经历过这种情况)会发生这种情况。 “准备好”事件似乎在javascript有机会添加监听器之前触发,因此$(窗口).ready永远不会触发。

答案 5 :(得分:0)

示例:当页面完全加载包括图形时运行一个函数。

  $( window ).load(function() {
         // Run code
         });

示例:在每次加载图像时,将类bigImg添加到高度大于100的所有图像中。

$( "img.userIcon" ).load(function() {
   if ( $( this ).height() > 100) {
     $( this ).addClass( "bigImg" );
   }
});

有关详细信息,请参阅http://api.jquery.com/load-event/

答案 6 :(得分:0)

尝试这种方式:

$(document).ready(function(){
   //Do something
})