[英]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.