风舞残阳 2008-4-1 11:20
IE和FireFox下javascript读写XML实现广告轮换
最近更新[wiki]网站[/wiki]首页广告,ASP.NET的广告控件很容易实现这点,可首页是静态页面,[wiki]联想[/wiki]广告控件的原理决定采用javascript+xml实现这点方面配置,更新广告时只要更新xml即可,方便了广告轮换
xml[wiki]结构[/wiki]如下
%26lt;ad%26gt;
%26lt;tupian%26gt;http://www.seehaha.com/images/060901-150.100.2.gif%26lt;/tupian%26gt;
%26lt;tupian%26gt;http://www.seehaha.com/xml/061009-300.100.jpg%26lt;/tupian%26gt;
%26lt;dizhi%26gt;http://www.seehaha.com/plan/%26lt;/dizhi%26gt;
%26lt;dizhi%26gt;http://www.seehaha.com/va.htm%26lt;/dizhi%26gt;
%26lt;/ad%26gt;
==
//JScript文件varNow=newDate();varMin=Now.getSeconds();vari;if((Min%2)==1)//读取秒数,根据奇偶随机轮换,当然也可以改变此处[wiki]算法[/wiki]增加xml节点数{i=1;}else{i=0;}varurl="xml/ads.xml";String.proto[wiki]type[/wiki].Trim=function(){returnthis.replace(/(^\s*)│(\s*$)/g,"");}varxmlDoc;//判断是否为Firefox或IEvarmoz=(typeofdocument.implementation!='undefined')%26%26(typeofdocument.implementation.createDocument!='undefined');varie=(typeofwindow.ActiveXObject!='undefined');functionimport[wiki]XML[/wiki](file){if(moz){xmlDoc=document.implementation.createDocument("","doc",null);//创建FIREFOX下XML文档[wiki]对象[/wiki]}elseif(ie){xmlDoc=newActiveXObject("MSXML2.DOMDocument.3.0");xmlDoc.async=false;while(xmlDoc.readyState!=4){};//创建IE下XML文档对象}xmlDoc.load(file);}importXML(url);//载入xmlfunctionupdatetupiandizhi(){if(moz){varad=xmlDoc.getElementsByTagName("ad")[0];vartupian;var_tupian=ad.getElementsByTagName("tupian")[i].firstChild.nodeValue;if(_tupian)tupian=_tupian.Trim();//得到tupian,dizhi节点下的值vardizhi;var_dizhi=ad.getElementsByTagName("dizhi")[i].firstChild.nodeValue;if(_dizhi)dizhi=_dizhi.Trim();document.getElementById('tupian').href=tupian;document.getElementById('dizhi').src=dizhi;//实现轮换}elseif(ie){varsrc=xmlDoc.documentElement.selectNodes("tupian");varhref=xmlDoc.documentElement.selectNodes("dizhi");/得到tupian,dizhi节点下的值document.getElementById("dizhi").href=href(i).text;document.getElementById("tupian").src=src(i).text;//实现轮换}}