2016-12-19 96 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(); 
}