javascript - KitKat WebView 错误地报告 pageYOffset

标签 javascript android google-chrome webview

在 Android 上,在 WebView 中,我们遇到了 window.pageYOffset 属性间歇性错误地返回 0 的问题。

它也会在应该返回 0 时返回 0,例如在页面顶部。

这是一个 JSBin,显示了我们到目前为止的内容(打开控制台):

jsbin

这是我们使用的代码:

jsbin

这是滚动页面时 console.log 的屏幕截图。

log showing the issue

我们的环境是 Android KitKat,在应用程序中使用 webview,chrome 开发人员工具报告为版本 (33.0.0.0)。

另外值得一提的是,如果我们在 KitKat 上的 chrome 37 中加载页面,它会按预期运行,并且不会间歇性地报告 0。

最佳答案

所以这是一个解决方案,您必须在滚动时缓存偏移值,并且当 WebView 间歇性地为 window.pageYOffset 返回 0 时,使用之前缓存的位置。

这是一个 JS Bin适用于 Android WebView。

我知道关于性能相当讨厌,但是实现间隔或超时 like this也会有所帮助。

关于javascript - KitKat WebView 错误地报告 pageYOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851072/

相关文章:

javascript - jQuery load() 没有在 url 中传递完整的字符串

javascript - 如何更改纸张输入 Polymer 中的下划线边框

java - 如何将自定义按钮添加到通知面板

android - Xoom 平板电脑的相对布局问题

javascript - 在background.html中监听NPAPI事件

google-chrome - 绕过 Chrome 的恶意文件警告

java - 读取Excel文件时如何对重复记录进行验证

javascript - 用户脚本适用于 Chrome/Tampermoney,但不适用于 Firefox/Greasemonkey

java.io.IOException : Stream Closed ObjectOutputStream

node.js - 是否可以使用 puppeteer 将 Javascript 对象传递给 nodejs?