您的位置:首页 > Web前端 > JavaScript

解决ajax加载的页面js无法找到的问题

2008-08-06 12:01 676 查看
有一个大页面叫A里面有b和c,b负责菜单,c负责显示内容。每点一次菜单,c里的内容要换一下,但是有些js是在c内容换进来的页面里才有用,所以,我本想写在c1,c2,c3,c4里的,可是写在里面找不到,后来只能写在A里. 但是这样写的话,如果有些菜单很少用到的话,A页面就会很庞大,因为里面加满了引入的js.试了n多办法,都不行,后来想要不在点击菜单的时候把需要的js加载到页面里,但是只是放在c1,c2,c3,c4...里还是找不到,后来就动态放入A的head里了,然后可以找到了。这个问题就先这样办吧。

function changeRight(url,updateDiv) {
loadJs(url)
var url = url;
var pars = "";
var myAjax = new Ajax.Updater(updateDiv, url, { method: 'get', parameters: pars});
}

function loadJs(url){
var tmp = url.split("/");
var tmpNode;
for(var i=1;i<tmp.length;i++){
if(i==3){
tmpNode=tmp[3]
}
// alert(tmpNode);
var num = tmpNode.indexOf(".do");
tmpNode = tmpNode.substring(0,num);
// alert(tmpNode);

var oHead = document.getElementsByTagName('HEAD').item(0);
var oScript= document.createElement("script");
oScript.type = "text/javascript";
oScript.src="../../js/"+tmpNode+".js";
var tmpvalue = document.getElementById("flagtmp").value;
// alert(tmpvalue);
if(tmpvalue.indexOf(tmpNode)== -1){
document.getElementById("flagtmp").value = document.getElementById("flagtmp").value +"-"+ tmpNode;
//alert("不存在!"+document.getElementById("flagtmp").value+"------"+tmpvalue.indexOf(tmpNode));
oHead.appendChild(oScript);
}
else{
//alert("已经存在");
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: