.load()在ipad上不起作用
我有简单的脚本来检查图像,但它在我的ipad 5.1上没有正常工作。 在图像中我收到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()(即设备转弯)事件……) 。