.load()在ipad上不起作用

时间:2012-09-07 12:20:30

标签: jquery ipad load mobile-safari mjpeg

我有简单的脚本来检查图像,但它在我的ipad 5.1上无法正常工作。在图像中,我收到了jpg的流,因此加载必须在每个帧上工作(如在大型野生动物园中),但在ipad中它只会触发一次。可能是一些建议吗?

$('#image').load(function(){
    console.log(new Date().getTime(););
});

2 个答案:

答案 0 :(得分:3)

在jQuery官方网站上提到:

  

与图像一起使用时加载事件的注意事项

     

开发人员尝试使用.load()快捷方式解决的常见挑战是在图像(或图像集合)时执行   图像)已完全加载。有几个已知的警告   这应该注意。这些是:

     
      
  • 它不能始终如一地工作,也不能可靠地跨浏览器
  •   
  • 如果图像src设置为与之前相同的src,则无法在WebKit中正确触发
  •   
  • 它没有正确地冒泡DOM树
  •   
  • 可以停止触发已存在于浏览器缓存中的图像
  •   

答案 1 :(得分:0)

正如@ Parv-sharma所说,.load不可靠。同样的经验。

如果这是关于响应式图像调整(只是猜测)的东西,这是恕我直言,你最好的解决方法:

  1. 当然有一个中央resizeScript()。确保你抓住img.height()=== 0的情况,在这种情况下坚持你的优雅降级又名默认又名非-js缩放。 (阅读:暂时不做任何事)

  2. 最多三次激活你的resizeScript()

    在image.load()上,在jQuery.ready()上,最后是一个延迟的,几毫秒之后。

    setTimeout( App.adjustFullsize ,300);
    

    这要么没有坏处(如果其中一个先前的调用已经完成了工作,或者事情仍然失败)但是有一个很好的改变,那么图像现在也被“正式”加载......

  3. (哦,第4次,您可能想要注册到resize()(即设备转弯)事件......)