关于safari获取不到图片高度的解决办法

哎 现在就是成天的 被各种见所未见的bug所缠身。

写了一个两个div相等的事件,正要提交到正式服的时候,看了一下safari的兼容。

唉卧槽啊,这一看惊的我老命差点都没有。

要实现的一个div的高度等于img的高度

img用了懒加载

safari肯定是图片还没有完全载入进来,就去获取图片的宽度了,得其宽度为0,结果就出错了

办法是不要使用”$(document.ready(function(){…})”或其简写形式”$(function(){…}),

用$(window).load(function(){});这个方法来写,当页面加载完成后在去执行就好了

 $(window).load(function(){
            ... //此处省略N行
            var w = $(this).width();
            ... //此处省略N行        
    });

再不然 就使用Image对象和其onload方法

$(function(){
            ... //此处省略N行
            var that = $(this);
            var img = new Image();
            img.src = $(this).attr("src");
            img.onload = function(){
                    var w = img.width;
            }
            ... //此处省略N行        
    });

欢迎分享本文,转载请保留出处:前端ABC » 关于safari获取不到图片高度的解决办法

分享到:更多 ()

发表评论 0