同一页面调用js文件函数同名引起冲突的问题,如何解决 - Web 开发 / Ajax
主页面调用两个js文件,显示两个新闻模块,代码如下:<script type="text/javascript" src="hp/modcnt_1.js"></script> <script type="text/javascript" src="hp/modcnt_2.js"></script>;其中modcnt_1.js文件代码如下: function initIt()
{
pic("wz.asp?t="+new Date());
}
onload = initIt;
var xmlhttp=false;
function GetXmlHttp(){
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
}
return xmlhttp;
}
//主要函数httpurl为你要调用的URL地址
function pic(httpurl){
GetXmlHttp();
var url=httpurl;
xmlhttp.onreadystatechange=callback;
xmlhttp.open("get",url,true);
xmlhttp.send(null);
}
//返回值函数yj为前台调用DIV的ID
function callback(){
var objdiv1=document.getElementById(yj);
if(xmlhttp.readyState==1){
objdiv1.innerHTML="正在加载数据";
}
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var info=xmlhttp.responseText;
objdiv1.innerHTML=info;
}
}
modcnt_2.js文件只是更改了变量yj已经wz.asp,但是两个新闻模块只能加载一个;考虑到函数重名冲突问题,将2.js里面的函数全部改名,还是不行;请各位大大帮忙解决,急用!谢谢了县
------解决方案--------------------
其中modcnt_1.js文件代码如下: function initIt()
{
pic("wz1.asp?t="+new Date(),"div1");
pic("wz2.asp?t="+new Date(),"div2");
}
onload = initIt;
var xmlhttp=false;
function GetXmlHttp(){
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
}
return xmlhttp;
}
//主要函数httpurl为你要调用的URL地址
function pic(httpurl,objid){
GetXmlHttp();
var url=httpurl;
xmlhttp.onreadystatechange=callback(objid);
xmlhttp.open("get",url,true);
xmlhttp.send(null);
}
//返回值函数yj为前台调用DIV的ID
function callback(objid){
var objdiv1=document.getElementById(objid);
if(xmlhttp.readyState==1){
objdiv1.innerHTML="正在加载数据";
}
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var info=xmlhttp.responseText;
objdiv1.innerHTML=info;
}
}
只要载入一个就可以了。在pic里加入一个变量objid表示要被填充的块元素id,然后调用callback的时候再传递下去.
在init里面调用两次pic改不同的url和objid即可。