概述
在项目中用到了layui的富文本编辑器,此框架是通过生成iframe来实现的,由于要对富文本编辑器进行实时保存功能,需要自己在此框架基础上进行一些修改,就需要对iframe进行交互了。很少使用iframe这种方法,对此不太精通。就去查了一下操作方法,发现自己有的方法有效果有的没有,出于程序员的态度,不搞清今晚就不可能睡着了!
使用原生JS的方法都能够成功,使用JQ的方法就失败。我通过调试发现Jquery都是显示未定义,下意识的觉得就是加载顺序导致没有获取到。百度发现JQ的$(function(){})是在DOM树加载完毕后执行,window.onload是页面所有资源加载后执行。所以可能是iframe的加载靠后。
通过将JQ,JS的加载完毕方法去掉后,发现对iframe的JS方法显示null,JQ方法显示未定义,对此,出于职业本能都知道是iframe的加载靠后导致的了。靠后到比DOM树还晚。
DOM加载顺序(网上图示):
1.解析HTML结构
2.加载外部的脚本和样式文件
3.解析并执行脚本代码
4.执行$(function(){})
内对应代码
5.加载图片等二进制资源
6.页面加载完毕,执行window.onload
其他区别:window.onload()只能写一次,后边的会覆盖掉前边的;$(function(){})执行多次。
解决方法:在JQ加通过点击执行,iframe加载完后回调等方法实现延时,等待iframe加载完来执行。
最后
以上就是默默鱼为你收集整理的关于页面加载iframe及其对JQ中的加载完毕方法和JS的加载完毕方法的更深认知的全部内容,希望文章能够帮你解决关于页面加载iframe及其对JQ中的加载完毕方法和JS的加载完毕方法的更深认知所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复