我有简单的脚本来检查图像,但它在我的 ios 5.1 的 ipad 上无法正常工作。在图像中,我收到 jpg 的流,因此负载必须在每一帧上工作(如在大型 safari 中),但在 ipad 中它只触发一次。可能是一些建议?
$('#image').load(function(){
console.log(new Date().getTime(););
});
我有简单的脚本来检查图像,但它在我的 ios 5.1 的 ipad 上无法正常工作。在图像中,我收到 jpg 的流,因此负载必须在每一帧上工作(如在大型 safari 中),但在 ipad 中它只触发一次。可能是一些建议?
$('#image').load(function(){
console.log(new Date().getTime(););
});
jQuery官网上有提到:
与图像一起使用时加载事件的注意事项
开发人员尝试使用
.load()
快捷方式解决的一个常见挑战是在图像(或图像集合)完全加载时执行功能。应该注意几个已知的警告。这些是:
- 它不能始终如一地工作,也不能可靠地跨浏览器
- 如果图像 src 设置为与以前相同的 src,它不会在 WebKit 中正确触发
- 它没有正确地冒泡 DOM 树
- 可以停止对已经存在于浏览器缓存中的图像进行触发
正如@Parv-sharma 所说, .load 不可靠。在这里也有同样的经历。
如果这是关于响应式图像调整(只是猜测)之类的东西,那么恕我直言,这是您解决问题的最佳机会:
当然有一个中央 resizeScript() 。确保你抓住了 img.height() === 0 的情况,在这种情况下,坚持你的优雅降级,也就是默认,也就是非 js 缩放。(阅读:暂时什么都不做)
最多触发你的 resizeScript() 三次
在 image.load() 上,在 jQuery.ready() 上,最后是延迟的,几毫秒后。
setTimeout( App.adjustFullsize ,300);
这要么没有害处(如果之前的调用之一已经完成了这项工作,或者如果事情一直失败),但有一个很好的变化,即图像现在也“正式”加载了......
(哦,第四次,您可能还想注册到 resize()(即设备转动)事件......)。