我有一个UI小部件,由于性能原因需要放在IFRAME中,所以我们可以轻松地将它联合到联盟网站。窗口小部件的UI包括显示在其他页面内容顶部的工具提示。请参阅下面的屏幕截图或 go to the site 以查看其实际效果。有没有办法让IFRAME中的内容与父框架的内容重叠?
答案 0 :(得分:78)
不,这是不可能的。忽略任何历史原因,如今它将被视为安全漏洞 - 例如。许多网站将不受信任的内容放入iframe(iframe源是不同的来源,因此无法根据相同的原始政策修改父框架。)
如果此类不受信任的内容具有将内容放置在iframe范围之外的机制,则可以(例如)在父框架的真实登录字段上放置“相同”的登录div(或其他),从而可能窃取用户名/密码信息。哪个会很糟糕。
答案 1 :(得分:8)
我找不到一种方法让框架的内容流出框架,但我确实找到了一种方法来破解它,将工具提示移动到父文档中并将其放在上面(z-index )iframe。
方法是:
1)在父文档中找到iframe
2)从DOM中的工具提示元素中删除工具提示元素,并将其添加到包含iframe的元素内的父文档中。
3)您可能需要调整z-index和定位,具体取决于您最初的工作方式。
您可以使用parent.document访问iframe的父文档。
jQuery(tooltip).remove(); var iframeParent = jQuery("#the_id_of_the_iframe", parent.document)[0].parentNode; iframeParent.appendChild(tooltip); //adjust z-index, positioning
答案 2 :(得分:1)
这可能不合适,因为它根据您的要求不合适,或者实际上可能没有帮助(!),但可能值得查看UFrame。它是iframe和div的混合体,可能被打包成一个小部件(你最好的选择是为客户提供一个<script>
标签,它会吸收UFrame和相关的标记)。我不确定的是你是否能够实现你需要的叠加,但它可能值得一试。对不起,我不能更具体,但这不是我自己实际使用的东西,我只是暂时将它加入书签以供将来参考。
答案 3 :(得分:1)
如果您知道工具顶部可以具有的绝对值,则可以创建一个div,即内容的高度+工具提示将显示的最大距离。将iframe与div的底部对齐。确保iframe和div是透明的。然后应显示带有工具提示的iframe内容。虽然这样可以让你自满,但是要确保突出显示的内容在所有浏览器中都能正常工作。
答案 4 :(得分:1)
将您当前的iframe和建议的div嵌套在父iframe中,然后将您的父iframe放入第三方,两者都是最好的!
答案 5 :(得分:0)
据我所知,无法做到。为什么不使用XHR请求并填充div呢?
答案 6 :(得分:0)
我找到了一种方法来解决类似的问题,但这需要能够对父内容进行一些修改。
快速上下文:
我正在管理一个网站,该网站通过我们自己的 API 获取与某些合作伙伴相关的一些数据,并通过许多过滤选项以一种很好的方式呈现它。我们的一些合作伙伴有兴趣在他们自己的网站上显示这些数据,但开发他们自己的 UI 来显示 API 数据对于很多合作伙伴来说是他们负担不起的。
我们首先建议将我们的 UI 集成到他们网站上的 iframe 中,但这样数据就无法被 Google 等外部搜索引擎索引。 所以我们转而采用相反的原则:我们将他们网站的顶部菜单集成到我们 UI 中的 iframe 中。
问题:
他们的标题菜单通常包含一些下拉子菜单。这些子菜单不能溢出 iframe 高度并被截断。
解决方案:
然后在 JS 中: