如何解决window.scroll在安卓系统iFrame中不工作的问题
How can I workaround window.scroll not working in iFrame on Android
window.scroll
和window.scrollTo
(其别名)似乎无法在安卓4.0.4互联网浏览器中嵌入的<iframe>
上工作。其他功能(似乎)也没有,比如window.scrollBy
等。我如何绕过这个限制,迫使<iframe>
滚动到页面上的特定位置?
一些额外信息:
- 解决方案不需要优雅,它可以是一个棘手的解决方案。无论如何,这都是测试代码
- 虽然代码不需要干净,但至少应该可以使其对跨浏览器友好
- 设备是运行Android 4.0.4原生浏览器的三星Galaxy Note
- 框架在同一域中,因此可以在其上运行代码
- 除了滚动之外,我希望页面尽可能保持原样
- 当我的代码运行时,
<iframe>
已经完成加载
使用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);
}
这里和这里讨论的似乎是一个已知的bug。
以下为我做了一个技巧:
- 通过添加{overflow:hidden}关闭溢出样式
- 调用scrollTo
- 通过设置{overflow:scroll}打开样式
相关文章:
- 防止Iframe窗体在新窗口中打开
- 将样式表插入iframe
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 使用jQuery从原始页面内容创建iframe
- Highslide(iframe的侦听器)
- iframe正在添加标签,需要删除它们
- 通过javascript/html访问twitter共享iframe
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 如何使用Angular动态添加iframe-src
- 由于iframe导致的问题
- 正在从页面中删除iframe
- 检测iframe是否跨域的愚蠢方法
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 如何操作iframe之外的元素
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- 数据绑定:'系统Char'不包含名为'xxxxx'
- 对特定的iframe使用javascript书签
- node-webkit-从父窗口捕获iframe鼠标事件
- iOS Phonegap网页链接嵌入iframe开放系统浏览器,而不是iframe
- 如何解决window.scroll在安卓系统iFrame中不工作的问题