JS window物件的top、parent、opener含義介紹 以及防止網頁被嵌入框架的程式碼

weixin_33763244發表於2017-04-17

1.top
該變更永遠指分割視窗最高層次的瀏覽器視窗。如果計劃從分割視窗的最高層次開始執行命令,就可以用top變數。 
2.opener
opener用於在window.open的頁面引用執行該window.open方法的的頁面的物件。例如:A頁面通過window.open()方
法彈出了B頁面,在B頁面中就可以通過opener來引用A頁面,這樣就可以通過這個物件來對A頁面進行操作。 
3.parent
parent用於在iframe,frame中生成的子頁面中訪問父頁面的物件。例如:A頁面中有一個iframe或frame,那麼iframe
或frame中的頁面就可以通過parent物件來引用A頁面中的物件。這樣就可以獲取或返回值到A頁面中。
4.另外self 指的是當前視窗

parent與opener的區別:

parent指父視窗,在FRAMESET中,FRAME的PARENT就是FRAMESET視窗。 
opener指用WINDOW.OPEN等方式建立的新視窗對應的原視窗。 
parent是相對於框架來說父視窗物件 
opener是針對於用window.open開啟的視窗來說的父視窗,前提是window.open開啟的才有

document.parentWindow.menthod()呼叫父頁面的方法

 

top例項

<!DOCTYPE html>

 <html>

 <head> 

<meta charset="utf-8"> 

<title>top</title> 
<script> 
function check(){ 
    if (window.top!=window.self) { 
        document.write("<p>這個視窗不是最頂層視窗!我在一個框架?</p>") 
    } 
    else{ 
        document.write("<p>這個視窗是最頂層視窗!</p>") 
    } 

</script> 
</head> 
<body> 
<input type="button" onclick="check()" value="檢查視窗"> 
</body> 
</html>

 

一段很簡單的防止網頁被嵌入框架的程式碼javascript程式碼,大家只要將它放入網頁原始碼的頭部,那些流氓就沒有辦法使用你的網頁了。

<script type="text/javascript">

if (window!=top) // 判斷當前的window物件是否是top物件

top.location.href =window.location.href; // 如果不是,將top物件的網址自動導向被嵌入網頁的網址

</script>

 

相關文章