首先创建两个页面

//iframe1.html

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


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

 <script>
var btn=document.getElementById("btn");
var iframe1=document.getElementById("ifram1");
btn.onclick=function(){ iframe1.contentWindow.document.getElementById("content").
style.background="red"; //iframe1.contentDocument.getElementById("content")
.style.background="red"; }
</script>
</body>
</html>

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

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

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

iframe1.contentDocument  IE低版本不支持

在Chrome同理

window.parent 调用父框架

window.top 调用顶层框架

//ifram2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body> <button id="changeTopDiv">changeTopDiv</button>
<iframe src="iframe2.html" frameborder="1" ></iframe>
<script>
var ctd=documet.getElementById("changeTopDiv");
var topDiv=window.top.document.getElementById("topIframe");
ctd.onclick=funtion(){

                topDiv.style.background="red";
}
</script> </body>
</html>
//demo2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<iframe src="iframe2.html" frameborder="1"></iframe> </body>
</html>
//demo3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body> <div id="topIframe">topIframe</div>
<iframe src="demo2.html" frameborder="1"></iframe> </body>
</html>

还有一个就是防止钓鱼

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

code

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

改变框架高度

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<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>
<meta charset="UTF-8">
<title></title>
<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>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<iframe src="iframe5.html" frameborder="1" id="show" scrolling="no"></iframe>
<button id="btn1">btn1</button>
<button id="btn2">btn2</button>
<script>
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.onclick=function(){ show.src="iframe5.html";
changeHeight(); } btn2.onclick=function(){ show.src="iframe6.html";
changeHeight(); }
</script>
</body>
</html>

写到这里 累死我了

最后一个就是iframe 的load事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<iframe src="iframe8.html" frameborder="1" id="show" scrolling="no"></iframe>

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

     </script>
</body>
</html>

操作iframe 的方法与兼容性的更多相关文章

  1. jquery操作iframe的方法:父页面和子页面相互操作的方法

    今天在弄jquery操作iframe中元素:先由iframe中的子页面b.html给外面的父页面a.html页面传值,再将a.html页面计算机的值放到b.html页面上,这里就用到子页面和父页面相互 ...

  2. 操作iframe的方法

    子页面 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&q ...

  3. js学习笔记:操作iframe

    iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...

  4. jquery 操作iframe的几种方法总结

    iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作 DOM方法: 父窗口操作IFRAME:window.frames["iframeSo ...

  5. JQuery操作iframe父页面与子页面的元素与方法

    JQuery操作iframe父页面与子页面的元素与方法 JQUERY IFRAME 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元 ...

  6. 笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法

    iframe相当于一个嵌入在网页内的浏览器,它与当前网页是隔离的. 但有时我们也需要在当前网页操作iframe内的元素或操作iframe内的javascript方法. 在网页内操作DOM元素,是使用d ...

  7. jQuery操作iframe中js函数的方法小结

    1.jquery操作iframe中的元素(2种方式) ? 1 2 var tha = $(window.frames["core_content"].document).find( ...

  8. jquery方法操作iframe元素

    操作iframe父元素 $("#rolesCtl",parent.document).find( 'button' ).trigger( 'click' ); 在父页面获取ifra ...

  9. 操作iframe的一些方法

    //父页面操作iframe里的内容 oInput.onclick=function(){ var oBox = oIframe.contentWindow.document.getElementByI ...

随机推荐

  1. 整理一下原生js的dom操作

    获取元素 getElementById() getElementsByClass() getElementsByTagName getElementsByName node属性 前.后.父.子 pre ...

  2. json转化数组

    //json格式数据 $data = '[{ "F_ModuleId": "1", "F_ParentId": "0", ...

  3. list(列表)操作【五】

    L表示从左边(头部)开始插与弹出,R表示从右边(尾部)开始插与弹出. 一.概述:      在Redis中,List类型是按照插入顺序排序的字符串链表.和数据结构中的普通链表一样,我们可以在其头部(l ...

  4. 【前端node开发】你需要的Express开发教程

    1.极简Node教程-七天从小白变大神(一:你需要Express) https://www.jianshu.com/p/b4701a6efc50

  5. css-实现图标在输入框中显示

    一:JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有 ...

  6. python enumrate使用

    新接触了一个函数 enumrate ,很多情况下我们想获得可迭代的容器(例如dict.list.tuple等)元素的时候,想同时获得一个序号用以他用. 代码常常写成这个样子 list_a = [&qu ...

  7. ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、

    1.Request.ApplicationPath->当前应用的目录    Jsp中, ApplicationPath指的是当前的application(应用程序)的目录,ASP.NET中也是这 ...

  8. java 异常链

    1.) 常常会想要在捕获一个异常后抛出另一个异常,并且希望把原始异常的信息保存下来,被称为异常链. 2.)Throwable子类在构造器中可以接受一个cause(因由)对象作为参数.这个cause就是 ...

  9. 【OpenCV for Android】Android Studio集成OpenCV

    准备工作 1.下载安装Android Studio(过程略). 2.下载Android OpenCV:https://opencv.org/releases.html,找到Android pack点击 ...

  10. 算法之DP

    一般DP 都是有模板的,先初始化,然后找到不同状态下数值的关系,使得某个状态可用另一个状态由一个固定的方式转移而来,列出状态转移方程,这就是DP: 例题 P1216 [USACO1.5]数字三角形 N ...