我试图检测何时使用事件加载图像(而不是使用间隔来检查完整属性)。我有以下代码,但由于某种原因,这不会触发。我也对 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>
编辑:更正了日志消息中的错字。