我遇到以下问题 - 我有一个 webview,我在其中加载了一个 iframe,我通过 javascript 修改(插入文本)的内容文档。问题是当内容变得太多(webview变得可滚动)并且当用户滚动时,触摸事件将无法正确处理 - 即用户将点击某处并且光标将出现在不适当的位置或不会完全出现。当不存在 iframe 时,不会观察到此行为。
欢迎任何有关如何解决此问题的想法。
我遇到以下问题 - 我有一个 webview,我在其中加载了一个 iframe,我通过 javascript 修改(插入文本)的内容文档。问题是当内容变得太多(webview变得可滚动)并且当用户滚动时,触摸事件将无法正确处理 - 即用户将点击某处并且光标将出现在不适当的位置或不会完全出现。当不存在 iframe 时,不会观察到此行为。
欢迎任何有关如何解决此问题的想法。
问题可能是由于双滚动。
由于 iFrame 的内容超出了它的处理能力,因此使用触摸事件来滚动 iFrame。但是 webview 本身也可以滚动,因此很可能会出现奇怪的行为。
考虑当 iFrame 内容碰到边缘时会发生什么(用户一直向上或向下滚动 iFrame)。如果用户继续滚动 iFrame,会发生什么?它应该什么都不做并吃掉这个事件吗?反弹 iFrame 滚动内容?将事件传递给 webview 以便它可以滚动?
这是一个模棱两可的情况。Android 的反应方式可能会因触摸手势的不同而不一致,甚至可能因不同的 Android 版本而异。
您最好避免使用 iFrame 并直接修改 webview 内容,或者为 iFrame 提供 100% 的高度和 100% 的宽度,以便它占据整个 webview。
这将避免滚动冲突,并且 Android 应该不再对放置光标的位置感到困惑。
为 iframe 设置固定高度。<iframe ... scrolling="no" height="150px">
将 iScroll 应用于div
iframe 中的内容。
iScroll 可在此处获得: https ://github.com/cubiq/iscroll
这是 iScroll 的演示:http: //cubiq.org/dropbox/iscroll4/examples/simple/