动态加载js、css等文件跨iframe实现


Posted in Javascript onFebruary 24, 2014

1、动态加载js,css文件(用原生js和jquery)

iframe结构:
frame0(父)
frame2(子)
frame3(子)

frame2中触发事件,动态的向frame3中 加载js、css文件和 dom元素?

*同级之间可以调用,可以 通过 子-父-子 的方式调用同级
parent.parentFram(“这个方法在调用其他子farme”);

1.jquery的append()

速度快,同步(需要引入jquery) var oBody = document.getElementById("frame3_id").contentWindow.$("body"); 
var str = "<div>...</div>" 
var scriptTag = document.getElementById("frame3_id").contentWindow.document.getElementById("pop"); 
if(!scriptTag){ 
oBody.append(str); 
} 
var oScript= document.createElement("script"); 
oScript.id = "oScript1"; 
oScript.type = "text/javascript"; 
oScript.src="/test.js"; 
var oTag1 = document.getElementById("frame3_id").contentWindow.document.getElementById("oScript1"); 
if(!oTag1){ 
oBody.append(oScript); 
} 
document.getElementById("frame3_id").contentWindow.test(); // 调用frame3_id 中的test()方法

***********************************
上述例子:a.需要引入jquery;
***********************************
2.js 的appendChild()

速度慢,异步(需要判断js是否加载完毕)

列子2:

var str = "<div>...</div>" 
var popDiv=document.createElement('div'); 
popDiv.style.xx = xxx; 
popDiv.id = "pop"; 
popDiv.innerHTML = str; 
var oBody = document.getElementById("frame3_id").contentWindow.document.getElementsByTagName("body")[0]; 
var oHead = document.getElementById("frame3_id").contentWindow.document.getElementsByTagName("head"); if(oHead && oHead.length){ 
oHead = oHead[0]; 
}else{ 
oHead = oBody; 
} 
var elemDivTag = document.getElementById("frame3_id").contentWindow.document.getElementById("pop"); 
if(!elemDivTag){ 
oBody.appendChild(popDiv) 
} 
var oScript= document.createElement("script"); (css类似) 
oScript.id = "oScript1"; 
oScript.type = "text/javascript"; 
oScript.src="/test.js"; 
var scriptTag = document.getElementById("main").contentWindow.document.getElementById("oScript1"); 
if(!scriptTag){ 
oHead.appendChild(oScript); 
} 
oScript.onload = oScript.onreadystatechange = function(){ 
if ((!this.readyState) || this.readyState == "complete" || this.readyState == "loaded" ){ 
document.getElementById("main").contentWindow.test(); // test()方法 在 引入的js文件中 
}else{ 
console.info("can not load the oScript2.js file"); 
} 
}
Javascript 相关文章推荐
利用jquery.qrcode在页面上生成二维码且支持中文
Feb 12 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
每天一篇javascript学习小结(基础知识)
Nov 10 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
webpack中如何使用雪碧图的示例代码
Nov 11 Javascript
vue+element UI实现树形表格带复选框的示例代码
Apr 16 Javascript
详解vue-property-decorator使用手册
Jul 29 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
Apr 14 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 Javascript
es5 类与es6中class的区别小结
Nov 09 Javascript
js操纵dom生成下拉列表框的方法
Feb 24 #Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 #Javascript
JS取request值以及自动执行使用示例
Feb 24 #Javascript
减少访问DOM的次数提升javascript性能
Feb 24 #Javascript
createTextRange()的使用示例含文本框选中部分文字内容
Feb 24 #Javascript
JavaScript 实现鼠标拖动元素实例代码
Feb 24 #Javascript
对table和ul实现js分页示例分享
Feb 24 #Javascript
You might like
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
PHP页面中文乱码分析
2013/10/29 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
Python自定义类的数组排序实现代码
2016/08/28 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python实现动态数组的示例代码
2019/07/15 Python
Python collections模块使用方法详解
2019/08/28 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
如何安装ruby on rails
2014/02/09 面试题
庆元旦广播稿
2014/02/10 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
年度考核表个人总结
2015/03/06 职场文书
食品质检员岗位职责
2015/04/08 职场文书
文明礼仪倡议书
2015/04/28 职场文书
农村婚庆主持词
2015/06/29 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
清明节主题班会
2015/08/14 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技