Javascript Chrome,不在本地呈现我的jquery sldieshow,而是在联机(internet)时加载(在FF、IE中工作)

Javascript Chrome,不在本地呈现我的jquery sldieshow,而是在联机(internet)时加载(在FF、IE中工作),javascript,jquery,google-chrome,browser,Javascript,Jquery,Google Chrome,Browser,我似乎找到了问题所在,但我: 不知道“为什么”会发生 不知道如何修复它 背景: 我正在使用css将图像样式设置为宽度=100%,以便浏览器根据屏幕大小相应调整高度 在Chrome中调试时,我可以看到my height变量为0。。。所以这个脚本似乎在Chrome有时间处理图像之前就运行了 在线观看时,幻灯片效果非常好 幻灯片使用FF和IE在本地和在线播放 如上所述,Chrome在本地不起作用,但在联机时起作用(远程托管) 我担心这个问题也会在网上出现。。因为很明显有些情况会让某些事情变得反常。

我似乎找到了问题所在,但我:

  • 不知道“为什么”会发生
  • 不知道如何修复它
  • 背景:

    我正在使用css将图像样式设置为宽度=100%,以便浏览器根据屏幕大小相应调整高度

    在Chrome中调试时,我可以看到my height变量为0。。。所以这个脚本似乎在Chrome有时间处理图像之前就运行了

    • 在线观看时,幻灯片效果非常好
    • 幻灯片使用FF和IE在本地和在线播放
    • 如上所述,Chrome在本地不起作用,但在联机时起作用(远程托管)
    我担心这个问题也会在网上出现。。因为很明显有些情况会让某些事情变得反常。。。我想把它修好

    代码:


    您应该绑定到图像加载事件,例如:

    $(document).ready(function () {
        var $img = $(".BannerHolder div.slides div a img");
        $img.one('load', ReloadBanner);
        // next line is to fire onload event of image on older browser even image already cached
        if ($img[0].complete) $img.load();
    });
    

    chrome不喜欢在本地加载页面而不被服务器访问的文件协议。在chrome控制台中没有任何错误消息吗?顺便说一句,要计算图像高度,需要加载图像,请参阅此图像的onload事件。当然,一旦缓存了图像,这就不再适用了。如果您没有从本地文件系统加载外部资源,则可能是浏览器正在进入不同的渲染模式。您的页面是否有doctype并通过html验证?@a.Wolff,无错误消息。除了一些严格模式警告,指向我的videojs脚本中的方法(稍后在页面中仅用于检查目的),您是否可以尝试代替文档就绪处理程序使用:
    $(window).on('load',ReloadBanner)
    并删除
    $(document).ready(函数(){ReloadBanner();})
    @A.Wolff,实际上,它最初是作为窗口加载实现的,但我最近更改了它。。。我记得在那次改变后它还能工作。。。但我会让它转一转。
    $(document).ready(function () {
        var $img = $(".BannerHolder div.slides div a img");
        $img.one('load', ReloadBanner);
        // next line is to fire onload event of image on older browser even image already cached
        if ($img[0].complete) $img.load();
    });