首先创建两个页面

// 1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
          <p id="content">帅哥天下9</p>
         < >
         console.log( window.parent.document.getElementById("testParent").innerHTML);
        //调用父框架
         </ >

         
</body>
</html>
//demo1.html
<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
 <button id="btn">click</button>
 <div id="testParent">调用父框架</div>
 <  src=" 1.html" id=" 1"  border="1"></ >
 

 < >
       var btn=document.getElementById("btn");
       var  1=document.getElementById("ifram1");
       btn. =function(){
           
           1.contentWindow.document.getElementById("content").
          style.background="red";
          
           // 1.contentDocument.getElementById("content")
            .style.background="red";

         }
 </ >
</body>
</html>

1.contentWindow 获取 src设置页面的window对象然后操作里面的DOM

这个方法兼容IE 678 和其他主流浏览器 比如 FF Chrome 但是 Chrome对安全有保护

只可以在服务器端使用 可以用phpstudy测试

1.contentDocument  IE低版本不支持

在Chrome同理

window.parent 调用父框架

window.top 调用顶层框架

 

//ifram2.html
<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
    
     <button id="changeTopDiv">changeTopDiv</button>
     <  src=" 2.html"  border="1" ></ >
     < >
        var ctd=documet.getElementById("changeTopDiv");
        var topDiv=window.top.document.getElementById("top ");
        ctd. =funtion(){

 
                topDiv.style.background="red";
         }
     </ >

     
</body>
</html>

 

 

//demo2.html
<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
     <  src=" 2.html"  border="1"></ >
    
</body>
</html>

 

 

 

//demo3.html
<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
    
     <div id="top ">top </div>
     <  src="demo2.html"  border="1"></ >
    
</body>
</html>

 

还有一个就是防止钓鱼

有的网站会把别的网站 进来 然后欺骗用户去操作一些东西 谋利

code

<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
    <  src="test.html"  border="1"></ >
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
    if(window !=window.top){
   //必须让当前页面为最高级别页面
          window.top.location.href=window.location.href;
 
    }
</body>
</html>

改变框架高度

<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
    <style>
          html,body{
           
             padding: 0;
             margin: 0;
       }
       
       .box{
          
          width:200px;
          height:200px;
          background: red;

       }

       </style>
</head>
<body>
     <div class="box"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
    <style>
       html,body{
             
             padding: 0;
             margin: 0;
       }

       .box{
          
          width:200px;
          height:400px;
          background: green;

       }
    </style>
</head>
<body>
     <div class="box"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
     <  src=" 5.html"  border="1" id="show" scrolling="no"></ >
     <button id="btn1">btn1</button>
     <button id="btn2">btn2</button>
     < >
         var btn1=document.getElementById("btn1");
         var btn2=document.getElementById("btn2");
         var show=document.getElementById("show");

         function changeHeight(){
           setTimeout(function(){
              // 添加一个定时器 让他执行慢一点 
              //不然src刚执行完 html 还没刷新完
              // 就改变宽度 还是之前的宽度 
                show.height=show.contentWindow.document.body.offsetHeight;
               
           }, 200);
          

         }

         changeHeight();

         btn1. =function(){
               
              show.src=" 5.html";
              changeHeight();

         }

         btn2. =function(){
               
              show.src=" 6.html";
              changeHeight();

         }
     </ >
</body>
</html>

 

写到这里 累死我了

最后一个就是 的load事件

<!DOCTYPE html>
<html lang="en">
<head>
    <  charset="UTF-8">
    < ></ >
</head>
<body>
     <  src=" 8.html"  border="1" id="show" scrolling="no"></ >
       
        < >
           var show=document.getElementById("show");
           show. =function(){
             alert("加载完毕!");
          }

         //ie 也支持这个事件  但是 IE事件不能这么用
         //得需要事件绑定才可以  
       //show.attachEvent("click",function(){
              
           alert("加载完毕");

         });
        </ >
 
     </ >
</body>
</html>
收藏 打印