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