我在页面上有以下脚本,比如说“child.html”。
opener.opener = opener; opener.close()
如果引用 URL 是脚本语句 (parent.html) 中列出的 URL,我只希望浏览器看到该函数if
,否则我不希望浏览器看到它。
此脚本所在的页面是父页面的子页面(弹出窗口)。用户(希望)只会访问父页面,随后将使用该opener.opener = opener; opener.close()
功能打开该子页面并同时关闭父页面。
该功能工作正常,可以做我需要做的事情(打开弹出窗口后关闭父级)。但是,如果直接访问子页面 URL(换句话说,没有从父页面定向),那么显然没有要关闭的父页面,我得到脚本错误:
'opener' 为 null 或不是对象
我理解错误消息,因此如果引用 URL不是parent.html,我为什么要尝试隐藏“opener”,这样如果有人碰巧直接访问子页面,opener 会被隐藏并且没有错误消息。
我需要在以下脚本中进行哪些更改才能使其正常工作?
<script type="text/javascript">
//<![CDATA[<!--
if (document.referrer != '../parent.html') {
opener.opener = opener;
opener.close();}
else {}
//-->
//]]>
</script>
或者,我尝试编写以下内容:
<script type="text/javascript">
//<![CDATA[<!--
if (document.referrer = '../parent.html') {
return false;
} else {
opener.opener = opener;
opener.close();}
//-->
//]]>
</script>
但这会返回脚本错误:函数之外的'return'语句。
非常感谢您提供的任何帮助!