4

我遇到以下问题 - 我有一个 webview,我在其中加载了一个 iframe,我通过 javascript 修改(插入文本)的内容文档。问题是当内容变得太多(webview变得可滚动)并且当用户滚动时,触摸事件将无法正确处理 - 即用户将点击某处并且光标将出现在不适当的位置或不会完全出现。当不存在 iframe 时,不会观察到此行为。

欢迎任何有关如何解决此问题的想法。

4

2 回答 2

2

问题可能是由于双滚动。

由于 iFrame 的内容超出了它的处理能力,因此使用触摸事件来滚动 iFrame。但是 webview 本身也可以滚动,因此很可能会出现奇怪的行为。

考虑当 iFrame 内容碰到边缘时会发生什么(用户一直向上或向下滚动 iFrame)。如果用户继续滚动 iFrame,会发生什么?它应该什么都不做并吃掉这个事件吗?反弹 iFrame 滚动内容?将事件传递给 webview 以便它可以滚动?

这是一个模棱两可的情况。Android 的反应方式可能会因触摸手势的不同而不一致,甚至可能因不同的 Android 版本而异。

您最好避免使用 iFrame 并直接修改 webview 内容,或者为 iFrame 提供 100% 的高度和 100% 的宽度,以便它占据整个 webview。

这将避免滚动冲突,并且 Android 应该不再对放置光标的位置感到困惑。

于 2012-05-20T00:35:12.560 回答
1
  1. 为 iframe 设置固定高度。<iframe ... scrolling="no" height="150px">

  2. 将 iScroll 应用于diviframe 中的内容。

iScroll 可在此处获得: https ://github.com/cubiq/iscroll

这是 iScroll 的演示:http: //cubiq.org/dropbox/iscroll4/examples/simple/

于 2012-05-13T18:41:33.490 回答