如何仅在iframe中查看时隐藏元素

时间:2015-04-09 10:53:32

标签: jquery css iframe

我想关闭iframe中的特定元素 - 但是如果单独查看地图则显示它。

我有我创建的Google地图,它们与网站位于同一个域,文件夹等。我可以控制CSS,JavaScript等等。

我的网页包含iframe中的地图,以显示描述地图的其他内容。如果用户想要仅查看地图,则网页上有一个链接可单独查看地图。在创建地图本身的HTML文档中,我有一个元素,其中的链接浮动在地图上方,并带有该网站的徽标,以便用户可以返回到该网站。

我不希望在使用iframe观看时显示此徽标,但我确实希望它能够显示地图是否自行查看。

我做了研究,尝试了使用CSS为iframe和display:none的页面建议的方法,但不知何故,某些东西都没有用。

我不在乎它是否需要JavaScript,jQuery或CSS,我只需要一些有用的东西。感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用一些简单的JavaScript来检查页面是否在框架中呈现:

if (window.top != window) {
    // in a frame, hide stuff
}

window.top指的是页面中最上面的窗口。当页面独立查看时,这是常规的window;在一个框架中,它不是。

答案 1 :(得分:1)

您可以检测self窗口是否也是top窗口。如果没有,则将类应用于root元素并使用该类隐藏或显示内容的一部分:如果您将此脚本放在head

<script>
   (function(d, w) {
      if (w.self !== w.top) {
         /* this document is loaded in a frame/iframe */
         d.className += " iframe";
      }
   }(document.documentElement, window));
</script>

在包含CSS之前,您可以编写这种规则

.map { display: block; }
.iframe .map { display: none; }

或者像这样使用jQuery

$('.iframe .map').hide();