我注意到当我在 iPhone 或 iPad 上打开我的网站并转到文章页面时,浏览器会以某种方式检测到文章的开头,省略标题并向下滚动到文章内容,因此用户没有机会看到我网站的标题和标题上方的广告。我怎样才能禁用 Safari 的这种行为或至少欺骗它以使其停留在我的页面顶部?
最佳答案
终于知道是什么原因了!但是谢谢你们的帮助和提示。
所以问题是在 Apple 浏览器/设备上有一个事件“popstate”在加载页面时触发。这在 Windows Chrome、IE、Firefox 等中不会发生。它向下滚动的原因是我使用历史记录,当我向下滚动到另一篇文章时,我更改了网站的 url。然后,当用户在他的浏览器中单击后退按钮时,将触发“popstate”事件,并且在该事件上我滚动到上一篇文章的开头。因此,由于在 Apple 连接的浏览器中,页面加载时有一个额外的 popstate 事件,它会立即将我滚动到第一篇文章。这是防止这种行为的技巧:
window.addEventListener('load', function () {
setTimeout(function () {
window.addEventListener('popstate', popStateHandler, false);
}, 0);
}, false);
关于javascript - Safari 跳过网站标题并转到内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32948805/