第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

iframe之多么痛的領(lǐng)悟

標(biāo)簽:
Html5

iframe基本用法

内联元素
如果想作为块级元素,需要加display:block 否则在计算高度时,会出现 5px左右的空隙

<iframe src="" frameborder='0' scrolling='yes' name='myFrameName' id='myFrameId'></iframe>

多层iframe嵌套数据交互

通过name或id获取iframe对象


获取当前iframe对象
var frame = document.getElementById('myFrameId') || $('#myFrameId')[0] || $('iframe[name=myFrameName]')[0]

获取当前iframe的window对象
var frameWindow = frame.contentWindow  || window.frames[myFrameName]

获取当前iframe的document对象
var frameDoc = frameWindow .document

父子交互

父页面获取iframe内的dom
var sonDom = frameDoc.getElementById('sonDom');
调用子页面的方法
frameWindow.sonFnc()
子页面获取父页面dom
var parentDom = parent.document.getElementById('parentDom');
或 
var parentDom = top.document.getElementById('parentDom'); //多层iframe获取顶层父页面dom
调用父页面方法
parent.parentFnc();

注意:父元素需要使用window.或 $(window).load(),在所有资源都加载完毕后,才可以获取子页面的dom,否则会出现dom为null的情况。

完整代码如下

父页面:

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
<h1>i am the iframe parent page</h1>
<h3 id="parentDom"></h3>
<iframe class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="son.html" name="son" id="sonFrame" style="display: block;"></iframe>
</body>
<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
<script type="text/javascript">
	function parentFnc(){
		alert('i am the parent function')
	}
	var parentVar = 'parentVar';
	window.onload = function(){
		var sonFrame = document.getElementById("sonFrame");
		var sonWindow = sonFrame.contentWindow;  //获取iframe的window对象
		var sonDoc = sonWindow.document;  //获取iframe的document对象
		
		alert('sonVar');
        sonWindow.son()   //调子页面方法

        sDom = sonDoc.getElementById("sonDom")
        $(sDom).html('i am from the parent page')

		
	}

</script>
</html>

子页面:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<h1>i am son page</h1>
	<div id="sonDom"></div>
</body>
<script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
<script type="text/javascript">
	var sonVar = 'sonVar';
	function son(){
		alert('i am the son function')
	}
	var pDom = window.parent.document.getElementById('parentDom');
	pDom.innerHTML ="i am form the son page";
	
	alert(window.parent.parentVar);
	window.parent.parentFnc();
	
</script>
</html>

跨域问题

注意:chrome对于file协议有安全限制,访问本地文件也存在跨域问题,需在服务器中访问或修改chrome配置。

总结 iframe优缺点

优点:

  • 使用简单
  • 不用刷新整个页面 公用代码不用重复加载

缺点

  • 页面多,管理不方便,无法使用浏览器返回键
  • 资源请求过多 (iframe外层的页面,和iframe页面不能公用资源,每个iframe都要加载其所用的所有资源)
  • 移动设备兼容性差
點擊查看更多內(nèi)容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消