【发布时间】:2012-02-01 08:17:51
【问题描述】:
我在使用 safari/mobile safari 加载和触发图像时遇到问题。我有一个在画布上绘制的自定义对象,但需要等到对象图像属性已加载,因为它在绘制时使用图像的尺寸。以下代码在 ff 上运行良好,但在 safari 中失败:
function canvasSlider(){
this.slideImg=new Image();
this.slideImg.src="images/back_button.png";
this.somevalue=55;
}
canvasSlider.prototype.init = function (){
alert(this.slideImg.complete + ', ' + this.slideImg.height+', ' + this.somevalue);
}
var myObj = new canvasSlider();
myObj.init();
在 safari 中 this.slideImg.complete 总是返回 false
如何使用 this.slideImg.onload=somefunction();并始终确保 canvasSlider 对象被传递?
function canvasSlider(){
this.slideImg=new Image();
this.slideImg.onload=somefunction(this);
this.slideImg.src="images/back_button.png";
this.somevalue=55;
}
function somefunction(obj){
alert(obj.slideImg.complete+', '+obj.slideImg.src);
}
var myObj = new canvasSlider()
这不起作用。有任何想法吗? 谢谢
【问题讨论】:
-
您可以尝试使用 jquery 或 YUI 进行事件处理,我知道它们可以为自定义事件对象提供支持。
-
嗨,杰夫,我还没有使用 jquery。我想但不想重写。谢谢
标签: javascript image object onload