javascript - Safari 跳过网站标题并转到内容

标签 javascript html mobile-safari

我注意到当我在 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/

相关文章:

javascript - 使用数据属性的 jQuery 搜索

php - 将 PHP 变量传递给 JavaScript

html - 不同显示器上的页面格式

javascript - Handlebars 模板和 bxSlider

html - 当触发 iOS Safari 中的虚拟键盘时,它会使我的 CSS 过渡闪烁。这怎么能解决?

需要 Javascript 对象 (IE8)

javascript - AngularJS ngModelController

javascript - 在运行时创建时移动元素时出错

ios - 如何在reactjs中实现iphone的点击状态栏滚动到顶部

javascript - jStorage 在某些 IOS safari 浏览器中无法工作