如何解决window.scroll在Android上的iFrame中无法解决的问题

时间:2013-07-30 18:32:42

标签: javascript iframe android-internet

window.scroll and window.scrollTo (its alias) don't seem to work on an <iframe> embedded in the Android 4.0.4 internet browser。其他任何功能(似乎)都不像window.scrollBy等。我如何解决此限制并强制<iframe>滚动到页面上的特定位置?

一些额外信息:

  • 解决方案不需要优雅,它可以是一个hacky工作。无论如何,这是测试代码。
  • 虽然代码不需要干净,但至少应该可以使其跨浏览器友好
  • Device是运行Android 4.0.4原生浏览器的Samsung Galaxy Note
  • Frame位于同一个域中,因此代码可以在其上运行
  • 除了滚动之外,我想让页面尽可能不受影响
  • 我的代码运行时<iframe>已完成加载

2 个答案:

答案 0 :(得分:1)

使用focus()

function scrollY(i) {
  var div = document.createElement("div");
  div.innerHTML = "<a style='position:absolute;left:0;top:" + i + "px' href='#'></a>";
  div = div.firstChild;
  document.body.appendChild(div);
  div.focus();
  div.parentNode.removeChild(div);
}

答案 1 :(得分:1)

它看起来像一个已知错误discussed herehere

以下为我做了一招:

  • 通过添加{overflow:hidden}
  • 关闭溢出样式
  • 调用scrollTo
  • 通过设置{overflow:scroll}
  • 来启用样式