首頁 >web前端 >js教程 >動態載入js、css等檔案跨iframe實作_javascript技巧

動態載入js、css等檔案跨iframe實作_javascript技巧

WBOY
WBOY原創
2016-05-16 16:58:251217瀏覽

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 = "
...
"
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(oScriptBody.append(oScriptBody.append(oScriptBody.append) );
}

document.getElementById("frame3_id").contentWindow.test(); // 呼叫frame3_id 中的test()方法

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

速度慢,非同步(需要判斷js是否載入完成)

列子2:
複製程式碼 程式碼如下:

var str = "
...
"
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];
varument.getElementsByTagName("body")[0];
varument. oHead = document.getElementById("frame3_id").contentWindow.document.getElementsByTagName("head");

if(oHead && oHead.length){
oHead = oHead[0]; oHead.length){
oHead = oHead7>; }else{
oHead = oBody;
}

var elemDivTag = document.getElementById("frame3_id").contentWindow.document.getElementById("pop");
if(piv ){
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");
}
}
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn