当前位置: 首页 > 面试题库 >

JavaScript如何识别网页是加载到iframe中还是直接加载到浏览器窗口中?

璩俊雅
2023-03-14
问题内容

我正在写一个基于iframe的Facebook应用程序。现在,我想使用相同的html页面来呈现普通网站以及facebook中的画布页面。我想知道是否可以确定页面是否已在iframe中加载或直接在浏览器中加载?


问题答案:

浏览器可能window.top由于相同的原始策略而阻止访问。IE错误也会发生。这是工作代码:

function inIframe () {
    try {
        return window.self !== window.top;
    } catch (e) {
        return true;
    }
}

topself都是window对象(以及parent),因此您正在查看窗口是否是顶部窗口。



 类似资料:
  • 我需要调用一个函数,在浏览器窗口关闭时从系统中记录用户。 我找到了一个函数,但在重新加载浏览器时也会调用该函数,我不希望用户在重新加载浏览器时注销。一旦浏览器窗口关闭,我就需要这样做。 这可行吗?

  • 问题内容: 我正在尝试在客户端动态生成文件时在客户端上显示“掩码”。似乎为此的推荐解决方法(因为它不是ajax)是使用iframe并从onload或done事件中侦听以确定文件从服务器实际发送到客户端的时间。 这是我的角度代码: 这在Firefox中效果很好,但在Chrome中没有运气。我也尝试过使用onload函数: 但是我那里也没有运气。 有想法吗? 问题答案: 不幸的是,如果内容是附件,则无

  • 我在我的应用程序中使用SWT浏览器。我需要在浏览器中的超文本标记语言页面上运行脚本。但是脚本是在页面完全加载之前运行的。所以我如何让应用程序等待,直到浏览器完成加载。我曾经尝试过这样的事情。 但是这样不行! 这类似于JavaSWT浏览器:等待动态页面完全加载,但没有解决方案。

  • 问题内容: 我的网站上有一个版块,在进行一些密集的通话时加载速度很慢。 知道如何div在页面准备时显示类似于“加载”的内容,然后在一切准备就绪时消失吗? 问题答案: 我需要这个,经过一番研究,我想到了这个(需要jQuery): 首先,在标签之后添加以下代码: 然后将div和图片的样式类添加到CSS: 然后,将此JavaScript添加到您的页面中(当然,最好在页面结尾处,在结束

  • 我正在使用selenium使用chrome浏览器来自动化网页,但是chrome浏览器没有启动,它在地址栏中显示“数据:;”而没有加载任何页面。 selenium: selenium-服务器-独立-3.0.0-beta2,也尝试了2.53 Chrome驱动程序:2.23(http://chromedriver.storage.googleapis.com/index.html?path=2.23/)

  • 问题内容: 我需要检测用户是否滚动到页面底部。如果它们在页面底部,则当我在底部添加新内容时,我将自动将它们滚动到新底部。如果它们不在底部,则它们正在阅读页面上较高的内容,因此,我不想自动滚动它们,因为它们希望停留在原处。 如何检测用户是滚动到页面底部还是滚动到页面较高? 问题答案: window.onscroll = function(ev) { if ((window.innerHeight +