Javascript"图片加载"多次射击

时间:2016-09-21 09:31:18

标签: javascript jquery image

我在iframe中加载了一个网页,它使用javascript来计算网页文档的高度(文档可能有图像)。现在我写了下面的代码来计算加载图像后的高度:

$("#campaignContainer img").bind("load", function() {
                console.log("image load call");
                callPostSize(this.src);             
            })
            .each(function() {           
              if(this.complete) {
                  console.log("Before image load call from complete");
                 /*this.onload= function(){console.log("image load call");
                                          callPostSize(this.src);
                                          };*/
                  $(this).load();
                  console.log("call load from image complete");
              }

我注意到图像加载多次被激发以防一张图像; 如果图像没有被缓存,则会激发2次,否则会激发3次。

我的问题是 1)为什么多次触发图像加载?这是一个jquery问题还是一些浏览器事件? 2)有办法阻止这个吗?

我尝试了jquery.one但没有成功:它没有给出确切的高度(只有最后一个触发器给出了确切的高度)。

2 个答案:

答案 0 :(得分:0)

你正在使用' img'标记为选择器。因此,它将触发' campaignContainer'中出现的所有图像。

答案 1 :(得分:0)

发现了这个问题。从代码的其他部分再次显式调用图像加载,这是不明显的。