2016-12-19 51 views
2

我有一个网站,在JavaScript中重装时$(window).width() > 1000px和其更改为$(window).width() <= 1000pxiPad正在刷新崩溃后在JavaScript

后,我只是想移动和桌面视图之间切换后重新载入我的网页。

在iPad 4(iOS 10.3)上改变方向几次后 - 浏览器说出现问题并重新加载页面。而iPad正在重新加载的无限循环中,不是由我的脚本,而是由它的Safari。

$(window).resize(function() {   
    if($(window).width()>mobileBreak) { 
     if(device==='mobile') { 
      setTimeout(function() { 
       refresh(); 
      },200); 
     } 
    } 
    else { 
     if(device==='desktop') 
      setTimeout(function() { 
       refresh(); 
      }, 200);  
     }   
    } 
}); 

function refresh() { 
    window.location.reload(); 
} 

在课程开始时我检查$(window).width()和设置变量device

它在个人电脑上运行良好,但在IOS平板电脑上效果不佳。

不要问我为什么每次查看更改时都必须重新加载页面。我只需要。

+0

什么是mobileBreak? –

+0

'mobileBreak = 1000;' –

+0

@RoryMcCrossan那是超时功能而非时间间隔。 –

回答

0

我找到了我的问题的答案!当我刷新页面的方向变化时 - Safari认为它是某种循环并显示错误。我添加了隐藏表单,每当我改变方向时,我都会在表单中设置随机输入值并将POST发送到当前位置。它工作真棒,没有错误,没有问题!梅比将来会帮助有人解决这个问题。

0

使用调整大小可能是问题的真正原因,它可能会在大小发生更改时被调用几次。您可以使用jquerymobile throttled resize事件来代替window.resize()https://api.jquerymobile.com/throttledresize/

$(window).on('throttledresize', function() {   
    if($(window).width()>mobileBreak) { 
     if(device==='mobile') { 
      setTimeout(function() { 
       refresh(); 
      },200); 
     } 
    } else { 
     if(device==='desktop') 
      setTimeout(function() { 
       refresh(); 
      }, 200);  
     }   
    } 
}); 

function refresh() { 
    window.location.reload(); 
}