1

我试图检测何时使用事件加载图像(而不是使用间隔来检查完整属性)。我有以下代码,但由于某种原因,这不会触发。我也对 onerror 和 onabort 事件做了一些处理,以防图像无法加载。

现在,如果我将回调附加到图像加载,则执行回调,并从原型的 onload 打印“Image Loaded”。几乎就像根本没有调用新的覆盖 onload 一样。我已经确定这是 head 脚本标签中的第一件事。

Image.prototype.coreOnload = Image.prototype.onload;
Image.prototype.onload = function() {
   console.log('Image Loaded ' + this.src);
   if( this.coreOnload ) {
      this.coreOnload();
    }
};

哦,我正在测试这是 chrome!

任何指针?

EDIT1:添加我的整个 html

当我加载此页面时,会记录“从回调加载”,但不会记录“图像加载”。我希望看到两者。

<html>
    <head>
        <script type="text/javascript" >

            Image.prototype.coreOnload = Image.prototype.onload;
            Image.prototype.onload = function() {
                console.log('Image Loaded ' + this.src);
                if( this.coreOnload ) {
                    this.coreOnload();
                }
            };
            Image.prototype.coreOnerror = Image.prototype.onerror;
            Image.prototype.onerror = function() {
                console.log('Image Loaded Error ' + this.src);
                if( this.coreOnerror ) {
                    this.coreOnerror();
                }
            };
            Image.prototype.coreOnabort  = Image.prototype.onabort;
            Image.prototype.onabort = function() {
                console.log('Image Loaded Error ' + this.src);
                if( this.coreOnabort ) {
                    this.coreOnabort();
                }

            };
        </script>
        <style>
            .newStyle {
                font-size: 14pt;
            }
        </style>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
    </head>
    <body >

        <script type="text/javascript">
        var img = new Image();
        img.onload = function(){
            console.log("Loaded from callback")
        };
        img.src = "http://i2.cdn.turner.com/cnn/dam/assets/121204012423-obama-boehner-t1-only-t1-main.jpg";

        </script>

        <a href="http://www.news.com">An external link</a>
    </body>

</html>

编辑:更正了日志消息中的错字。

4

0 回答 0