JS window对象的top、parent、opener含义介绍 以及防止网页被嵌入框架的代码

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>

原文地址:https://www.cnblogs.com/ranyonsue/p/6722653.html