填坑:frame和iframe 你所不知道的!

HTML
374
0
0
2022-09-14
标签   HTML标签

frame和iframe的详解

填坑:frame和iframe 你所不知道的!

1. frame不能脱离frameSet单独使用,iframe可以独立使用;

2.不能将 <body></body> 标签与 <frameset></frameset> 标签同时使用

如果将iframe放在frameset中时必须使用body标签包裹frame标签,chorme下的测试结果是dom解构中没有framset标签;

body>frameset>iframe*3

否则,只有framset中的frame会显示在dom中,iframe不可以;

frameset>frame*3

3. frame高度只能通过frameSet控制,iframe可以自己控制;

<frameset cols="50%, 50%">

<frame src="frame1.html">

<frame src="frame2.html">

</frameset>

填坑:frame和iframe 你所不知道的!

4. 从主页面访问

<iframe name = "test" id="iframe1"> ,前提是不违背跨域条件

var testWindow = window.test;//获得子框架的window

var testDocument = testWindow.document; //获得子框架的document

其他获得iframe window的几种方法

4.1

var frame1 = document.getElementById('iframe1');

console.log(frame1.contentWindow);

var doc = frame1.contentWindow.document;

4.2 window下一系列方法

window.frames['test']

window.frames[0] 是第一个iframe

window.test

top.frames['test']

top.frames[0];

frames[0]

frames['test'];

5. 从iframe访问外部框架

var parent = window.top;

var parent_doc = parent.document;

window.top指的是最顶部的window,

window.parent指的是包含此iframe的父元素的window,

当且仅当iframe的父元素有且仅有一个的时候,二者相等

6. 在自身的window下

self == window, 区分top.window.parent

在父框架和子页面域名不同的情况下,需要在自己的页面中嵌入对方域名的iframe,才能达到打通的效果;

填坑:frame和iframe 你所不知道的!