让scrollTo在iOS上的iframe中工作

Mar*_*mes 7 iframe jquery scrollto ios

我在mysite.com上有一个页面,它使用iframe从subdomain.mysite.com中提取内容.我正在使用iframe-resizer脚本(https://github.com/davidjbradshaw/iframe-resizer)来确保iframe的高度始终与其内容的高度相匹配.像魅力跨浏览器/操作系统一样工作.

在iframe中是一个带有客户端验证的长格式.如果用户尝试提交表单并且它没有完全验证,我使用scrollTo(在iframe内的表单页面上)将页面滚动到表单的顶部,在表单中显示详细的错误消息.这一切都适用于桌面浏览器(Mac和Windows)以及所有Android设备 - w/r/t scrollTo滚动到iframe中表单的顶部.

但是,在iOS上,它不起作用 - 滚动到iframe内部的窗体顶部不会发生.我已经读过,自2011年以来,你需要在iOS上打开iframe滚动的能力 - 我不确定这样做是否能解决我的问题.我读到了添加style ="overflow:auto; -webkit-overflow-scrolling:touch;" 到围绕iframe的div,并尝试了这个,但它没有任何影响.

我还不知道我是否找不到合适的解决方案让它在iOS中运行,或者如果在iOS上没有办法让scrollTo在iframe内部工作.思考?

Dav*_*haw 0

我看到您正在使用iFrame-ResizerscrollTo()这在 iframe 中提供了自己的版本,应该可以解决此问题,因为它将请求传递到父页面。

if ('parentIFrame' in window) {
  parentIFrame.scrollTo(0,0)
} else {
  window.scrollTo(0,0)
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/davidjbradshaw/iframe-resizer/blob/master/docs/iframed_pa​​ge/methods.md#scrolltoxy