簡體   English   中英

Jquery函數在safari中觸發但不在chrome中觸發

[英]Jquery function firing in safari but not in chrome

我有一個功能,當頁面加載document.ready()時,我滾動到頁面頂部。 但是在Chrome中,此功能僅在我在頁面上時才會運行並刷新它。

如果我通過在地址欄中鍵入鏈接來訪問該頁面,則該功能不會運行。 如果我從另一個頁面的鏈接訪問該頁面,它也不會運行。 它在Chrome中100%運行的唯一方法是,如果我在頁面上並刷新它。

但是,在Safari中,通過從鏈接訪問頁面,在重新加載時在地址欄中鍵入該頁面,該函數每次運行100%。

這是我的代碼:

jQuery(document).ready(function($) {
  if (location.hash) {               // do the test straight away
          window.scrollTo(0, 0);         // execute it straight away
          setTimeout(function() {
              window.scrollTo(0, 0);     // run it a bit later also for browser compatibility
          }, 1);
          //location.reload();
      }
});

這實際上也可以在Safari中使用而無需將其放在document.ready()但是再次不在Chrome中。

有人知道是什么原因引起的,以及是否可以修復? 我以前遇到過這個問題而且非常令人沮喪。

只需將setTimeout延遲時間增加20ms或更長然后20ms,可能是因為1ms時間間隔太短。

$(document).ready(function() {
if (location.hash) {        
          window.scrollTo(0, 0);
          setTimeout(function() {window.scrollTo(0, 0);}, 20);
}
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM