iframe与window.onload如何使用详解
在项目上,必要等页面加载完之后再执行一个要领用于修改页面的颜色,于是导出都是在行使onload办理,然而这并不能办理我碰着的题目,由于我发明,我项目上的页面如故没加载,折腾了好久才知道,原本是由于项目行使了很迂腐的iframe来操纵的,必需等iframe加载完之后才气执行要领,缘故起因说明完了,接下来我再说说,传统的,原生JS是怎样行使onload的。 网上很常见的要领 <script type="text/javascript"> window.onload=function(){ document.getElementById("bg").style.backgroundColor="#F00"; } </script> 表明:window.onload必需比及页面内包罗图片的全部元素加载完毕后才气执行。 尚有一种写法是 <body οnlοad="loadBody()"> <div ></div> <script type="text/javascript"> console.log("load ...... body javascript "); window.οnlοad=function(){ console.log("load ...... body window javascript "); } </script> </body> 表明:守候body加载完成,就会执行loadBody()要领。在window和dom之后执行,老是最后执行。这里的onload函数会包围window.onload 上述内容并不能办理我的题目,于是我去查我不是很想用的jQuery的要领:$(document).ready,想着能不能用原生JS实现该要领 function ready(fn){ if(document.addEventListener){ //尺度赏识器 document.addEventListener('DOMContentLoaded',function(){ //注销时刻,停止一再触发 document.removeEventListener('DOMContentLoaded',arguments.callee,false); fn(); //运行函数 },false); }else if(document.attachEvent){ //IE赏识器 document.attachEvent('onreadystatechange',function(){ if(document.readyState=='complete'){ document.detachEvent('onreadystatechange',arguments.callee); fn(); //函数运行 } }); } } 可是我发明我的项目上并没有任何变革,依然不能用在项目上,这我就发愁了,我溘然想到,项目上用的iframe于是就去搜了一下。 什么是iframe HTML内联框架元素 (<iframe>) 暗示嵌套的browsing context。它可以或许将另一个HTML页面嵌入到当前页面中。每个嵌入的赏识上下文(embedded browsing context)都有本身的会话汗青记录(session history)和DOM树。包括嵌入内容的赏识上下文称为父级赏识上下文。顶级赏识上下文(没有父级)凡是是由 Window 工具暗示的赏识器窗口。 iframe 的页面和父页面(parent)是分隔的,以是它意味着,这是一个独立的地区,不受 parent 的 CSS 可能全局的 JavaScript 的影响。 首要上风: 弱点: 好了,说了这么多利弊,照旧必要看详细项目来办理项目上的题目,那么怎么办理onload呢? // 页面加载时判定frameObj是否加载 window.onload = function(){ var frameObj= document.getElementById("frameID"); // 假如已加载则执行要领 if (frameObj.attachEvent){// IE frameObj.attachEvent("onload", function(){ yourfunction(); }); }else { // 非IE frameObj.onload = function(){ yourfunction(); }; }}; 这段代码有两点较量重要,起首是必要行使window.onload而且你必要知道attachEvent要领 写了这么久的代码,照旧把IE放在了思量范畴内,事实是Windws 内核,不想删掉就潜匿吧,最近在写前端代码的时辰,发明假如项目原来没有行使jQuery,就一向不行使jQuery,代码较量整洁,并且加上新出的vue、react都有本身不错的封装思绪,于是我写风俗了$这个dollar符终于可以不消了。 总结 早年老是很懒得写前端代码,写标签呀写JS呀,都认为又繁琐又没故意思,也许是由于学校里学的都是Java、C/C++这种,逻辑性很强,于是在前端的进修上,就慢了许多,慢了不知道好几拍。当本身想写一份前后端都很优雅,很绮丽的代码的时辰,就发明,只会后端是不足的,代码写出来要么很丑,要么前后交互很潦草,于是也就拿不脱手了。最近费尽心血写了一份代码,还在润色傍边,并且申请的域名可算是通过了,这里有一个大坑,就是,好久之前我在海内举办过存案,其时由于照旧门生,就在学校地址地申请了存案号,功效此刻想换又认为贫困,于是老是填错,本日关照我考核通过了,下一步就是联网存案,传闻是又多了一步,逐步走流程吧! 到此这篇关于iframe与window.onload怎样行使详解的文章就先容到这了,更多相干iframe与window.onload内容请搜刮剧本之家早年的文章或继承赏识下面的相干文章,但愿各人往后多多支持剧本之家! (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |