【问题标题】:Check if a page is opened in an overlay检查页面是否在叠加层中打开
【发布时间】:2011-10-31 14:56:11
【问题描述】:
如何确定页面是在叠加层还是在浏览器窗口中打开?
更准确地说,它是来自 GitHub 的下载页面行为:如果您单击 this page 的 Downloads 按钮,它将打开一个 facebox 覆盖。但是,如果您从相应链接复制地址并将其粘贴到新选项卡中,它将作为新页面打开。
那么如何查看页面打开的位置(假设是 PHP)?
编辑:
This 是我要找的。p>
【问题讨论】:
标签:
php
javascript
overlay
【解决方案1】:
我认为您需要使用 JavaScript 对客户端进行检查,而 PHP 在这方面对您没有帮助。据我所知,您需要弄清楚页面是如何加载的。可能它是一个 iframe 之类的。其中您必须能够检索加载的地址。
【解决方案2】:
我不知道您为什么要检查它,但是您可以看到该链接有一个 id="download_button"。在 bundle_hithub.js 文件中,download_button 与弹出事件相关联。不知道具体是怎么回事,那些单行压缩的JS文件很难看。
【解决方案3】:
如果要加载的页面有以下脚本
<script type="text/javascript">
window.location = "http://page-loads";
</script>
当通过 ajax 调用加载时它不会运行(因为页面很可能会附加一个 innerHTML 方式,导致脚本被附加到文档中,但不会运行)
但当仅在浏览器窗口中打开时 - 脚本将运行将用户带到所需的目的地!