我使用JavaScript来生成一个图像对象,然后使用jQuery来改变它的属性,包括一个.load函数。在找到Safari(ver 5.0.5)的错误控制台(当最后不难发现时最令人沮丧)之后,我们发现Safari在遇到未封闭的img标签时终止了它的JavaScript,当然在HTML5中不推荐使用。我只是简单地将函数中的img标签硬连接起来,如果这样做不会增加加载函数而非噩梦(如果不是不可能的话)。有任何想法吗?Safari浏览器不酷,HTML5无效元素; JavaScript是
function loadImageTitle(imgsrc, element, width, height, title) {
var img = new Image();
$(img)
.load(function() {
$(this).hide();
$(element).replaceWith(this);
})
.css({ 'max-width': width, 'max-height': height })
.attr("title", title)
.attr("alt", title)
.attr("src", imgsrc);
}
我其实有种不清楚这个最基础的部分。问题是,JavaScript使img没有尾随斜线(在Safari 5.0.5中,在FF 4.0.1中,在IE8中和在Chrome 13中 - 无处不在,因为我可以告诉),因为在HTML5中,它是可选的。 Safari不同意并终止脚本。
+3
你为什么要将图像对象传递给jQuery。难道这不是'$('
')'而不是'$(img)'? –
+0
什么版本的Safari?你可以在http://jsfiddle.net上重现这个吗? –
+1
只是为了澄清,你正试图将一个jQuery加载事件处理程序附加到JavaScript Image对象。还没有添加到DOM的一个。我对么? –