在滚动的div中嵌入不滚动的iFrame,iFrame内的锚点链接能够正常工作吗? iFrame内的锚点链接应该滚动到iFrame内的位置,我不需要/也不希望它们指向父页面上的元素。
这是我用jsFiddle提供的一个简单示例:
http://jsfiddle.net/shopguy/WjmHG/
并且它的代码为:
<div style="width: 100%; height: 300px; overflow: auto;">
<iframe style="width: 100%; height: 2000px;" src="http://www.hypergurl.com/anchors.html" scrolling="no"></iframe>
</div>
我与示例中使用的hypergurl.com链接没有任何关联,它只是我能找到的第一个具有id / name语法链接的页面示例。
如果您加载JSFiddle并单击iFrame内部的“跳转到底部”链接,则不会执行任何操作(在FireFox 19.0.2中测试)。在测试各种页面时,它从不在FireFox中工作,在Chrome中,如果第一次单击它,则有时会起作用,但如果向上滚动并再次单击,则不起作用。在IE8中,它大多数时间都有效(滚动)。
如果让iFrame本身拥有滚动条(删除scrolling =“no”),则滚动始终正常工作。但对我来说,这不是一个实际的解决方案,因为我希望框架外的内容也随着它滚动。在我的真实代码中,我动态设置iFrame的高度以填充其内容,这样它看起来更像是我的页面上的内容。
关于我需要这样做的其他信息:
我正在创建一个基于Web的电子邮件客户端,到目前为止,如果我在iframe中显示电子邮件的HTML正文,与尝试在页面内的表格单元格或div中显示相比,问题最少。我希望此类链接能够正常工作。我对内容有一定的控制权,它来自我的服务器,我可以对其进行一些修改(但不想进行太多的修改)。例如,我已经修改了所有链接以在新窗口中打开(但不包括以#开头的链接,因此这不是我的问题)。我知道GMail不使用iFrames,但我的XFINITY(由Comcast电缆提供)基于Web的电子邮件客户端使用,他们设法使这些链接起作用(但迄今为止还没有弄清楚他们都做了什么)。