【发布时间】:2015-04-10 15:26:08
【问题描述】:
我需要弄清楚一个窗口是作为独立窗口打开的,还是作为孤立窗口打开的。让我来说明一下我的意思。
假设我有两个 ASP 页面,分别称为 PARENT.asp 和 CHILD.asp。此外,还有一个重定向页面,我将其称为 CHILD-REDIRECT.asp。
当点击 CHILD.asp 上的某个按钮时,它会重定向到 CHILD-REDIRECT.asp,其中包含需要以某种方式运行的客户端 Javascript 代码,具体取决于它是否有父级(基于window.opener == null)。为了便于说明,我会说 Javascript 代码是一个布尔变量,我将其称为 IsOrphan。
因此,我打开一个新的浏览器窗口并导航到 CHILD.asp。然后我单击重定向到 CHILD-REDIRECT.asp 的按钮并启动 Javascript。因为我是作为独立页面打开的,IsOrphan = FALSE.
现在,我打开一个新浏览器并导航到 PARENT.asp。此页面包含一个window.open 调用,可在新窗口中打开 CHILD.asp。当 CHILD.asp 打开时,我关闭了 PARENT.asp,以便 CHILD.asp 现在位于孤立窗口中。所以现在当我点击按钮并且页面重定向到 CHILD-REDIRECT.asp 时,我需要IsOrphan = TRUE。
关于如何做到这一点的任何想法?我正在研究通过 window.opener 在 CHILD.asp onload 事件上为父级设置一个变量;然而,由于这些页面的复杂性,这并不像听起来那么容易。就目前而言,Javascript 检查window.opener 以启动代码,但当然,它不知道独立页面和孤立页面之间的区别。我希望有人知道一个好的/更好的方法来做到这一点。
【问题讨论】:
-
您对这两个页面都有控制权吗?他们在同一个域上吗?
-
是的,我有控制权,而且他们在同一个域中。
标签: javascript asp-classic dom-events