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

javascript浏览器几个兼容问题

2012-10-30 21:39 351 查看

1. window.event

现象:
document.body.onclick=function(ev){if(ev)console.log(1); else console.log(2); }

IE8以下不支持这种写法。

document.body.onclick=function(){if(window.event)console.log(1); else console.log(2); }

FF 不支持这种写法。

IE9、chrome 同时支持两种window.event和ev两种写法。



解决方案:

document.body.onclick=function(ev){

ev=ev?ev:window.event;

if(ev) console.log(1); elseconsole.log(2);

}

2. innerText和textContent

现象:

InnerText和textContext

IE9,chrome支持两者

IE8支持innerText

FF 支持textContent



解决方案:

text=e.textContent|e.innerText



3. innerHTML

现象:
在IE中使用如下语句:table.innerHTML = content; 动态修改table的HTML内容时,出现“未知运行错误”。错误原因: 在IE浏览器中,table的innerHTML属性是只读的,不能更改。类似的还有THEAD、TFOOT和TR(唯一例外的是td)。(FireFox下是可以正常使用的)
解决方案:
1. 使用table的对象模型或者DOM方法动态修改table,如:insertRow、insertCell、createTfoot、createThead或apendChild等
2. 定位到table的td,让后用td的innerHTML动态操作。

4. li 与span

现象:
<ul><spanid="test"><li >fdfd</li></span></ul>
IE9下document.getElementById('test').innerHTML 输出:<li>fdfd

Chrome和FF表现正常。

解决方案:
可以将span修改成div.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: