最好的处理方法是什么:JavaScript 中大小为零的图像不会触发 onload?
What is the best way to handle: onload not being triggered for images with size zero in JavaScript?
为了确保图像加载到我们的页面上然后进入下一个状态,我们使用了 onload
方法 here:
image = new Image();
image.onload = function(){
// go to the next state
};
image.src = image_url;
问题是大小为零的图像不会触发事件,因此页面停留在暂停模式,不会进入下一个状态。
处理大小为零的图像未触发 onload
函数的问题的最佳方法是什么?
相关问题:
1- new Image(), how to know if image 100% loaded or not?
如果您真的想对 0 大小的文件执行此操作,请尝试将其设为脚本。 0 大小的脚本有效。参见:
Trying to fire the onload event on script tag
或者如果你真的有一些真实的图像,但有些是 "nothing",然后使用 1x1 "clear_pixel.gif"。您也可以使用 css 使其不可见(尽管这样您也不会看到真实图像),也许有一种方法可以从 onload 中的 js 检测图像的实际大小是多少。
你能给图像一个非 0 的大小,然后使用 position:absolute 将它们放在页面之外不可见的地方吗?
height:1px
width:1px
position:absolute
left:-1000000px
(我在这里假设它们是 non-zero 大小的实际图像,但是您将 img 元素的大小设置为 0 以使图像不可见。我不确定这是案。)
如果您希望您的进程在图像加载完成或加载失败时继续,您可以将事件处理程序添加到 .onerror
事件:
var image = new Image();
image.onload = image.onerror = function () {
// go to the next state
};
image.src = image_url;
为了确保图像加载到我们的页面上然后进入下一个状态,我们使用了 onload
方法 here:
image = new Image();
image.onload = function(){
// go to the next state
};
image.src = image_url;
问题是大小为零的图像不会触发事件,因此页面停留在暂停模式,不会进入下一个状态。
处理大小为零的图像未触发 onload
函数的问题的最佳方法是什么?
相关问题:
1- new Image(), how to know if image 100% loaded or not?
如果您真的想对 0 大小的文件执行此操作,请尝试将其设为脚本。 0 大小的脚本有效。参见:
Trying to fire the onload event on script tag
或者如果你真的有一些真实的图像,但有些是 "nothing",然后使用 1x1 "clear_pixel.gif"。您也可以使用 css 使其不可见(尽管这样您也不会看到真实图像),也许有一种方法可以从 onload 中的 js 检测图像的实际大小是多少。
你能给图像一个非 0 的大小,然后使用 position:absolute 将它们放在页面之外不可见的地方吗?
height:1px
width:1px
position:absolute
left:-1000000px
(我在这里假设它们是 non-zero 大小的实际图像,但是您将 img 元素的大小设置为 0 以使图像不可见。我不确定这是案。)
如果您希望您的进程在图像加载完成或加载失败时继续,您可以将事件处理程序添加到 .onerror
事件:
var image = new Image();
image.onload = image.onerror = function () {
// go to the next state
};
image.src = image_url;