gpt4 book ai didi

javascript - Jquery 函数在 safari 中触发但在 chrome 中不触发

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:58 25 4
gpt4 key购买 nike

我有一个功能,当使用 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或更多然后20​​ms,可能是1ms的间隔时间太短。

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

关于javascript - Jquery 函数在 safari 中触发但在 chrome 中不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com