javascript - 自动隐藏地址栏问题

标签 javascript iphone safari hide address-bar

我使用以下脚本在 iPhone 上的 Safari 中隐藏我的地址栏:

window.addEventListener("load",function() {
setTimeout(function(){
window.scrollTo(0, 1);
}, 0);
});

问题是如果页面没有完全加载并且用户向下滚动,当它完成加载时它会再次弹出。我想让这更具防御性,所以当用户移动手机并自行清除地址栏时,它不会再这样做。

这是我的尝试,但没有成功:

window.addEventListener("load",function() {
setTimeout(function(){
  if(window > 1){

  }
  else
  {
window.scrollTo(0, 1);
}}, 0);
});

以防万一有人说我打算做一个 if(!window ... 并取出 else 但为了测试目的想保持这样,请指出我写错的可能性。

有什么想法吗?

最佳答案

使用 document.body.scrollTop 而不是简单的 window:

window.addEventListener("load",function() {
    setTimeout(function() {
        if (document.body.scrollTop > 1) {
            // Do your testing here...
        } else {
            window.scrollTo(0, 1);
        }
    }, 0);
});

完成测试后,您可以将其全部折叠成 1 行:

window.addEventListener("load",function() {
    setTimeout(function() {
        document.body.scrollTop || window.scrollTo(0, 1);
    }, 0);
});

关于javascript - 自动隐藏地址栏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11906987/

相关文章:

javascript - 如何使用 onClick 将文本框值递增/递减一个

javascript - 如何将更多数据附加到 AngularJS 模型?

iphone - Xcode 4——设置组的路径?

iphone - 当应用程序重新启动时,如何保留 UITextField 中存储在 plist 中的数据?

iphone - Objective-C/iOS - 测试是否存在 C 函数?

javascript - 强制使用 js 或 axios 使用不同的用户代理

javascript - 由 javascript 函数更改的 div 上的 CSS3 transofrms

iphone - 从主屏幕访问网站后 iphone 的 safari 上的不同 CSS 行为

javascript - Skrollr、Safari、固定位置滞后

javascript - Safari createPattern 失败并显示 SVG : suggestions for alternatives?