这是问题所在,我有并且需要 iframe 网页。此 iframe 必须具有一定的宽度/高度。这在 iOS 中不起作用,因为可爱的 iOS 决定忽略框架的高度属性并强制显示所有内容(混蛋!)。
你如何让它像一个普通的 iframe 一样?
这是问题所在,我有并且需要 iframe 网页。此 iframe 必须具有一定的宽度/高度。这在 iOS 中不起作用,因为可爱的 iOS 决定忽略框架的高度属性并强制显示所有内容(混蛋!)。
你如何让它像一个普通的 iframe 一样?
如果您拥有或有权修改这两个框架页面,我找到了一种方法。
如果您控制网页的 iframe,我发现一种行之有效的方法是用 div 直接在 iframe 页面内包围整个内容(不是 IFRAME)。因此,在标签之后,您将放置您的标签。
然后,测试 Safari 移动版是否是 iframed。
browser_=/iPhone|iPad/i.test(navigator.userAgent);
isInIframe = (window.location != window.parent.location) ? true : false;
如果它满足这个标准,那么将你放入框架页面的 div 的高度设置为 iframe 的高度应该是什么,并将 div 的溢出设置为自动。这将产生它是 iframe 的错觉。
现在,最后但并非最不重要的是将 iframe 标签包装在
<div style="-webkit-overflow-scrolling:touch; overflow: auto;">
如果您有使用 jQuery(window) 或类似的元素,请务必将其切换为使用 DIV,因为 window(iframe) 会自动扩展它不是很有帮助,因为 iframe 已经扩展了。
经过苦苦挣扎,终于找到了在ios中实现iframe滚动的方法,如下:
只需在 div 中放置一个 iframe(类似 div 的元素,充当容器)并按如下方式应用样式,这样就完美了。
.iframe {
overflow: scroll !important;
width: 100%;
height: 100%;
border: none;
}
.div {
overflow: hidden;
width: 100%;
height: 100%;
border: none;
background-color: #FFF;
}
当我在 GWT 工作时,这里是 GWT 人的建议。在 GWT 的情况下,只需在 ScrollPanel (div) 中放置一个 iframe 并应用上述样式。
首先,我为 Iframe 使用了下面的代码,这适用于所有网站和 android 移动应用程序,ipad 除了 iphone。虽然在 iphone 按钮中单击不起作用,但 css 会受到干扰。
<iframe class ="holds-the-iframe" src="http://stackoverflow.com" style="width:100%; height:100%;" seamless="seamless" ></iframe>
然后我们使用像素高度,这是我们从 2000 像素开始分层的最大高度,并减少它仍然可以工作并设置宽度 = 100%。这适用于所有设备。
<iframe src="http://stackoverflow.com" style="width:100%;height:1500px;"></iframe>