确定是否在iframe中查看网页的最佳方法

时间:2011-09-01 04:24:36

标签: php iframe browser-detection

有没有办法确定用户是使用side和iframe中的网页还是使用PHP正常浏览?

3 个答案:

答案 0 :(得分:1)

您可以在使用IFRAME时向请求添加一些GET参数。

<iframe src="http://www.example.com/iframe?iframe=1">

但是非iframe请求时不会有这个GET参数。

您可以检查此GET参数是否在会话中显示并定义。

因此iframe和普通窗口会有不同的会话。

答案 1 :(得分:1)

使用@deceze上面提到的javascript代码(我将其粘贴在下面),

if (parent.frames.length > 0) { ... }

如果上面的代码注意到页面显示在iframe中,那么通过ajax调用调用'IAmInIFRAME.php'(只是示例)。

答案 2 :(得分:0)

解决方案是查看父级的位置和当前窗口的位置是否相同。如果相同,则页面正常加载;如果不同,则页面已加载到iframe中。

var isInIFrame = (window.location != window.parent.location) ? true : false;

这来自这个网站。 http://www.24hourapps.com/2009/01/check-if-page-is-loaded-in-iframe-using.html,它来自此处Check if site is inside iframe的SO问题。

注意:在一项测试中,我遇到了跨浏览器起源错误,但只有在两个位置不同的情况下才会出现。