jquery 在iOS上使用scrollTo在iframe中工作

hfyxw5xn  于 2023-03-17  发布在  jQuery
关注(0)|答案(1)|浏览(136)

我在www.example.com上有一个页面mysite.com,它使用iframe从subdomain.mysite.com拉入内容。我使用iframe-resizer脚本(https://github.com/davidjbradshaw/iframe-resizer)来确保iframe的高度总是与其内容的高度相匹配。
iframe中有一个带有客户端验证的长表单,如果用户试图提交表单而它没有完全验证,我使用scrollTo(在iframe中的表单页面上)将页面滚动到表单顶部,在那里会显示详细的错误消息。(Mac和Windows)和所有Android设备上-- w/r/t scroll在iframe中滚动到表单顶部。
然而,在iOS上,它不起作用--滚动到iframe内部表单的顶部不会发生。我读到过,自2011年以来,在iOS上,你需要打开iframe滚动的功能--我不确定这样做是否能解决我的问题。我读到过将style="overflow:auto; -webkit-overflow-scrolling:touch;"添加到围绕iframe的div中,并尝试了这一点。但没有任何影响。
我还不知道我是否还没有找到正确的解决方案来让它在iOS中工作,或者在iOS中,scrollTo是否无法在iframe中工作。

wydwbb8l

wydwbb8l1#

我看到您使用的是iFrame-Resizer,它在iframe中提供了自己的scrollTo()版本,可以克服这个问题,因为它会将请求传递给父页面。

if ('parentIFrame' in window) {
  parentIFrame.scrollTo(0,0)
} else {
  window.scrollTo(0,0)
}

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

相关问题