gpt4 book ai didi

javascript - 是否有 .load() 事件处理程序的替代品?

转载 作者:行者123 更新时间:2023-11-28 08:34:58 24 4
gpt4 key购买 nike

我需要一种跨浏览器(当然)的方式来获取图像文件的原始尺寸。我发现的所有内容(例如 Craig BucklerJack MooreChris Coyier )似乎都需要加载图像。

不幸的是,jQuery 的 .load() 事件处理程序现已被弃用,但即使它不是 docs明确指出阻碍其实现我的目的的缺点:

  • 跨浏览器工作不稳定且不可靠
  • 如果图像 src 设置为与之前相同的 src,则在 WebKit 中无法正确触发
  • 它没有正确地冒泡 DOM 树
  • 可以停止触发已存在于浏览器缓存中的图像

是否有一种简单的替代方法可以替代 .load(),并且没有这些限制?或者也许是一个快速的解决方法?我不想安装整个库或插件,但显然 jQuery 已经摆在桌面上了。

最佳答案

我认为这是您所能得到的跨浏览器

function get_dimensions(image_element, callback) {
var img = new Image();
img.onload = function() {
callback({width: this.width, height: this.height});
}
img.src = image_element.src;
if (img.complete) img.onload(); // avoids caching issues
}

你可以这样调用它

var image = document.getElementById('myImage');

var width, height;
get_dimensions(image, function(dimensions) {
width = dimensions.width;
height = dimensions.height;
});

关于javascript - 是否有 .load() 事件处理程序的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21345081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com