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>
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,才能达到打通的效果;