寻求高人,优化这段JavaScript代码

SIOSXIAOQIANG SIOSXIAOQIANG 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题,我先说下,这段代码可以兼容IE和firefox浏览器,我曾经尝试只用支持firefox浏览器的JavaScript代码(大小8K),但是在IE浏览器下有延迟加载现象,大概要9秒才显示效果。
希望高手帮我把现有的代码优化下(现在代码大小13K),或者有没有更好的JavaScript代码,如有提供者可以加分。
代码如下:
支持firefox浏览器的JavaScript代码:

<script language="javascript">
function LoadXML()
{
xmlDoc=null;
if (window.ActiveXObject){
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=true;
xmlDoc.load("Area.xml");
}
else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET","Area.xml",false);
xmlhttp.send(null);
var xmlDoc = xmlhttp.responseXML.documentElement;
}
else {
xmlDoc=null;
}
return xmlDoc;
}
function InitArea()
{
var dropElement1=document.getElementById("1");
var dropElement2=document.getElementById("2");
var dropElement3=document.getElementById("3");
var pro=document.getElementById("province");
var cit=document.getElementById("city");
var cou=document.getElementById("district");
RemoveDropDownList(dropElement1);
RemoveDropDownList(dropElement2);
RemoveDropDownList(dropElement3);
dropElement2.options.add(new Option("请选择市","00"));
dropElement3.options.add(new Option("请选择区","00"));
var xmlDoc = LoadXML();
var lIdElem=xmlDoc.getElementsByTagName("province");
var lIdElem1=xmlDoc.getElementsByTagName("city");
var lIdElem2=xmlDoc.getElementsByTagName("county");
if(lIdElem.length > 0)
{
if(pro.value!=0){
for(var i=0;i<lIdElem.length;i++)
{
var pid=xmlDoc.getElementsByTagName("province")[i].getAttribute("id");
var pname=xmlDoc.getElementsByTagName("province")[i].getAttribute("name");
if(pro.value==pid){
dropElement1.options.add(new Option(pname,pid));
}
}
}
if(cit.value!=0){
for(var i=0;i<lIdElem1.length;i++)
{
var cid=xmlDoc.getElementsByTagName("city")[i].getAttribute("id");
var cname=xmlDoc.getElementsByTagName("city")[i].getAttribute("name");
if(cit.value==cid){
dropElement2.options.add(new Option(cname,cid));
}
}
}
if(cou.value!=0){
for(var i=0;i<lIdElem2.length;i++)
{
var couid=xmlDoc.getElementsByTagName("county")[i].getAttribute("id");
var couname=xmlDoc.getElementsByTagName("county")[i].getAttribute("name");
if(cou.value==couid){
dropElement3.options.add(new Option(couname,couid));
}
}
}
//------------------------------------------------------------------------
for(var i=0;i<lIdElem.length;i++){
var pid=xmlDoc.getElementsByTagName("province")[i].getAttribute("id");
var pname=xmlDoc.getElementsByTagName("province")[i].getAttribute("name");
dropElement1.options.add(new Option(pname,pid));

}
}
}
function selectProvince(obj)
{
var dropElement1=document.getElementById("1");
var dropElement2=document.getElementById("2");
var dropElement3=document.getElementById("3");
RemoveDropDownList(dropElement2);
RemoveDropDownList(dropElement3);
dropElement2.options.add(new Option("请选择市","00"));
dropElement3.options.add(new Option("请选择区","00"));

var xmlDoc = LoadXML();
var lIdElem=xmlDoc.getElementsByTagName("city");
if(obj.value!=0){
for(var i=0;i<lIdElem.length;i++){
var cid=xmlDoc.getElementsByTagName("city")[i].getAttribute("id");
var cname=xmlDoc.getElementsByTagName("city")[i].getAttribute("name");
var pid=xmlDoc.getElementsByTagName("city")[i].getAttribute("provinceid");
//alert(pid+":"+pname);

if(obj.value==pid){
dropElement2.options.add(new Option(cname,cid));
}
//sel.options.add(new Option(text,value));

}
}

}
function selectArea(obj)
{
var dropElement3=document.getElementById("3");
RemoveDropDownList(dropElement3);
dropElement3.options.add(new Option("请选择区","00"));
var xmlDoc = LoadXML();
var lIdElem=xmlDoc.getElementsByTagName("county");
if(obj.value!=0){
for(var i=0;i<lIdElem.length;i++){
var couid=xmlDoc.getElementsByTagName("county")[i].getAttribute("id");
var couname=xmlDoc.getElementsByTagName("county")[i].getAttribute("name");
var cid=xmlDoc.getElementsByTagName("county")[i].getAttribute("cityid");
//alert(pid+":"+pname);

if(obj.value==cid){
dropElement3.options.add(new Option(couname,couid));
}
//sel.options.add(new Option(text,value));

}
}


}
function RemoveDropDownList(obj)
{
if(obj)//如果参数obj不为空 则
{
var length=obj.options.length;
if(length > 0)
{
for(var i=length; i>=0;i--)
{
obj.remove(i);
}
}
}
}
window.onload=InitArea;
</script>

...全文
评论 16
收藏 已收藏
分享
返回顶部
SIOSXIAOQIANG
JavaScript 87,984 成员 224,681 内容