iOS修复后,HTML文件中的锚链接在iframe中不起作用

时间:2016-11-23 23:11:04

标签: ios css iframe hyperlink overflow

好的,所以我正在开发一个javascript应用程序。一个功能是应用程序的帮助页面。我试图这样做的方法是在一个包含在容器div中的iframe中打开一个帮助页面的按钮 - .html。

这很好用,但我遇到了一个众所周知的问题,即iframe不能在iOS中滚动(即在iPad和iPhone上)。

有一个常见的解决方法,包括在容器div的css中设置溢出规则。

所以最初的CSS类似于:

#iframeContainer {
    position:absolute;
    left:0px;
    top:0px;
    width: 750px;
}

#iframeContainer iframe {
{
    width:100%;
    height: 600px;
}

和iOS修复程序的css类似于:

#iframeContainer {
    position:absolute;
    left:0px;
    top:0px;
    width: 750px;
    height: 600px;
    -webkit-overflow-scrolling: touch;
    overflow: scroll;
}

#iframeContainer iframe {
{
    width:100%;
    height: 12000px;
}

溢出规则被添加到容器的css中,但为了工作,您必须在容器上设置高度。您还必须调整iframe本身的高度。如果我将它保留在最初的600px,它永远不会溢出容器div并且没有滚动。如果我没有在iframe上设置任何高度,它几乎不显示任何东西。因此,我必须设置iframe的高度以包含HTML文件的所有内容,即12000px。

所有这些都有效,并且iOS上的滚动问题已修复。但这是我遇到问题的地方。

加载到iframe中的HTML页面中有一堆链接到同一页面上其他位置的锚链接。应用iOS修复程序后,这些锚链接根本不再起作用。点击它们没有任何反应。

我有理由相信,原因是当我将iframe的高度设置为12000px时,HTML页面的行为似乎全部显示在一个页面上,在这种情况下,没有任何事情发生是锚链接的适当行为。 / p>

所以我想了解发生了什么,我只是想知道是否有人对如何使锚链接工作同时保持iOS修复工作有任何想法。如果我减小iframe的高度以使锚链接起作用,那么HTML页面中将越来越少地显示在iframe中。如果我一起删除iOS修复程序,锚链接将起作用,但滚动将无法在iOS上运行。

对任何事情开放。目前,我已经放弃了这个想法,“帮助”按钮只是在新的标签/窗口中打开HTML页面。

0 个答案:

没有答案