我在頁面上有下面的腳本,讓我們說「child.html」。document.referrer and close()
我只希望瀏覽器看到函數opener.opener = opener; opener.close()
如果引用的URL是腳本的if
語句(parent.html)中列出的URL,否則我不希望瀏覽器看到它。
此腳本所在的頁面是父頁面的子頁面(彈出窗口)。用戶(希望)只能訪問父頁面,該頁面隨後將打開此子頁面並使用opener.opener = opener; opener.close()
函數同時關閉父頁面。
該函數工作正常,並做我需要它做的事情(打開彈出後關閉父)。 但是,如果直接訪問子頁面URL(換句話說,沒有從父頁面導向),那麼顯然沒有父頁面關閉,並且我得到腳本錯誤:
'opener'爲null或不是一個對象
我明白錯誤信息,因此我試圖隱藏'開罐器',如果引用URL 不是 parent.html,以便如果有人碰巧直接訪問子頁面,首先是隱藏並且沒有錯誤消息。
在下面的腳本中需要更改什麼才能使其工作?
<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' 語句的功能之外。
非常感謝您提供的任何幫助!
首先,如果你想寫一個函數,你必須聲明它,然後調用:function myFunc(...){//你的代碼返回} myFunc(...) – Dario 2012-07-24 16:51:47
第一段代碼嘗試類似if(document.referrer!='../parent.html'&& opener){....} – Dario 2012-07-24 16:56:13
謝謝Dario! :) – abracassabra 2012-07-24 17:03:09