当我们充满信心,满怀期待和激情的点下 刷新按键时 ,哇 让人崩溃的现象出现了 ,明明运行良好的代码 在换了浏览器之后 竟然"ba工了",正所谓人挪活树挪死,那我们怎样才能让这颗"树"在别的地方活下去呢,要想让这段代码继续运行,那我们首先要弄清楚,为什么在不同的浏览器上会出现不兼容的问题。
下面我们就借IE、opera、火狐 实现三级联动来做阐述:
首先针对不同的浏览器我们要创建不同的xmlDom对象
//IE浏览器
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
try{
//firefox 其他浏览器
xmlDoc = document.implementation.createDocument("","",null);
}catch(er){
alert("您的浏览器实在是太低。。。。。。。。");
}
下一个关键的问题就是,当我们用root.childNodes;获取根节点的全部子节点是 不同的浏览器会获取到不同的只,这就是为什么在IE下运行良好 而换了浏览器就不兼容了,
因为IE自动吧空格过滤掉了,而opera 和火狐,都把空格当成了一个文本节点,所以
在遍历之前我们要进行一下元素类型判断if(provinces[i].nodeType ==1 )
还有一点要说的光有这些还不够,就是基本上这几款浏览器都能在部署到服务器之后访问,但是opera 本地访问貌似就出了些问题 那我们应该怎样解决opera的本地访问问题呢
我的opera版本是11.10 beta据测试在其一下的版本都自动Allow File XMLHttpRequest
没有允许的怎么办呢,那我们就在地址栏里直接打上about:config 回车 然后找到user prefs
然后把里面的Allow File XMLHttpRequest打勾 保存 然后重启浏览器就可以本地访问了。
下面贴一下(省,市,县)三级联动具体实现码
由于贴不开只好分开来写