【发布时间】:2010-09-24 00:50:21
【问题描述】:
我正在创建一个 jQuery 插件。
如何在 Safari 中使用 Javascript 获取真实的图像宽度和高度?
以下适用于 Firefox 3、IE7 和 Opera 9:
var pic = $("img")
// need to remove these in of case img-element has set width and height
pic.removeAttr("width");
pic.removeAttr("height");
var pic_real_width = pic.width();
var pic_real_height = pic.height();
但在 Safari 和 Google Chrome 等 Webkit 浏览器中,值为 0。
【问题讨论】:
-
接受的答案使用图像加载事件。完全有道理,但在可以缓存图像的情况下,结果证明是一个不可靠的解决方案(令我沮丧)。
-
我对此的看法可能会对您有所帮助,并在最新的 Webkit 中进行了测试。 stackoverflow.com/questions/318630/…
-
@Nosredna,您可能对 imagesLoaded 函数感兴趣,即使图像已被缓存,该函数也会触发。
-
这个问题的正确答案是简单地使用 naturalWidth 和 naturalHeight 属性。无需骇客。
-
您也可以完全按照您在加载窗口时所做的操作,而不是准备好文档
标签: javascript jquery safari google-chrome webkit