0

我正在编写一个互联网站点,使用 javascript, HTML for IE9

我找到了通过以下方式动态加载图像的解决方案:

document.getElementById("id_image").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.getElementById("id_filepic").value

id_image 相关<IMG>和 id_filepic 相关<input id="id_filepic" type="file">

行后:

document.getElementById("id_image").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.getElementById("id_filepic").value

在 html 页面上显示图像之后发生的确切事件是什么(因此,图像具有宽度 + 高度),我如何捕获该事件?

了解 IE9 的解决方案对我来说很重要。

4

2 回答 2

1

它不必在该行之后,因为它无论如何都是异步的,但它是:

document.getElementById("id_image").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.getElementById("id_filepic").value;
document.getElementById("id_image").addEventListener('load', (function(i) {
    return function() {
        console.log(i, 'loaded');
    }, false);
})(i));

来源:Javascript Image onload 事件绑定

于 2013-06-09T17:35:59.337 回答
1

我想参与我的解决方案,我发现了。

好吧,以上内容不可编译,并且“onload”也不是正确的事件(据我调查,在使用“filter”命令后它不会被触发)。

我所做的是有点延迟,超时命令(大约一秒)是这样的:

    setTimeout(function () {
        alert("w: " + $("#id_image").width());
        alert("h: " + $("#id_image").height());
    }, 1000); 

(甚至 100 毫秒就足够了,但我检查了非常大的图像。1 秒是相当大的,不会因为大图像上的代码而下降)。

延迟之后,我可以毫无问题地检索图像的宽度和高度。

就完成了这个问题。

于 2013-06-09T22:05:53.547 回答