html5+调用safari,Safari浏览器不酷,HTML5无效元素; JavaScript是

博客作者在Safari 5.0.5浏览器中遇到JavaScript处理图片的问题,由于HTML5中img标签的尾部斜杠是可选的,导致Safari在遇到未封闭的img标签时终止了JavaScript执行。问题在于Safari不接受这种语法,而其他浏览器如Firefox 4.0.1、IE8和Chrome 13则没有此问题。作者尝试通过将img标签硬编码来解决这个问题,但寻求更好的解决方案。讨论涉及jQuery的.load()函数、HTML5的有效性以及跨浏览器兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用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。难道这不是'$('

p-tsytpyub-yc.html')'而不是'$(img)'? –

+0

什么版本的Safari?你可以在http://jsfiddle.net上重现这个吗? –

+1

只是为了澄清,你正试图将一个jQuery加载事件处理程序附加到JavaScript Image对象。还没有添加到DOM的一个。我对么? –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值