【问题标题】:JavaScript & IE7 - Why won't my *.onload = function() { } fire?JavaScript & IE7 - 为什么我的 *.onload = function() { } 不会触发?
【发布时间】:2008-11-21 00:07:46
【问题描述】:

我有一个画廊,我很快就为一个小网站编写了代码,在 Firefox 3 和 Safari 3 下运行良好。但是当我在我最好的老朋友 IE7 上进行测试时,它似乎没有触发 imageVar.onload = function() { // code here }.. 我想用它来停止加载效果并加载图像。

请记住...

  • 我知道缩略图只是大图的缩小版。当客户最终确定图像时,我将创建适当的缩略图。
  • 这是我第一次尝试在大多数情况下摆脱程序化 JavaScript。所以请放轻松,请让我知道我的代码糟糕的地方!

【问题讨论】:

    标签: javascript xhtml internet-explorer-7


    【解决方案1】:

    要成功使用Image.onload,必须在设置src属性之前注册事件处理方法。

    本题的相关信息:

    Javascript callback for Image Loading

    【讨论】:

    • 我添加了一个包含示例 sn-p 的答案的链接。
    【解决方案2】:

    由于实现差异,跨浏览器事件支持并不那么简单。由于您在站点上使用 jQuery,因此最好使用它的事件方法来规范浏览器支持:

    代替:

     window.load = function(){ 
          //actions to be performed on window load
     }
    
     imageViewer.image.onload = function(){ 
         //actions to be performed on image load
     }
    

    做:

    $(window).load(function(){ 
        //actions to be performed on window load
    });
    
     $(imageViewer.image).load(function(){ 
          //actions to be performed on image load
     });
    

    【讨论】:

    • 奇怪,一些图库现在正在工作...单击某些图像缩略图会使图像显示在右侧,但不会显示在其他图像缩略图上。听起来很奇怪还是什么?非常感谢您的意见。
    【解决方案3】:

    只是为了添加 Eran 的建议以使用 jQuery 的内置事件处理程序,您可以在加载文档并创建 DOM 但在下载图像之前运行代码:

    $(document).ready(function(){
       //your code
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-08
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多