你對IE和Firefox下編寫Javascript的區別是否了解,這裡和大家簡單分享一下,相信本文介紹一定會讓你有所收獲。
IE和Firefox下編寫Javascript的區別
除了CSS以外,IE和FF對Javascript寫法有時也不同,也是讓人頭痛的問題,下面介紹些常用的區別。其中IE代替InternetExplorer,以MF代替MozzilaFirefox。
1.document.form.item問題
(1)現有問題:
現有代碼中存在許多document.formName.item("itemName")這樣的語句,不能在MF下運行
(2)解決方法:
改用document.formName.elements["elementName"]
(3)其它
參見2
2.集合類對象問題
(1)現有問題:
現有代碼中許多集合類對象取用時使用(),IE能接受,MF不能。
(2)解決方法:
改用[]作為下標運算。如:document.forms("formName")改為document.forms["formName"]。
又如:document.getElementsByName("inputName")(1)改為document.getElementsByName("inputName")[1]
(3)其它
3.window.event
(1)現有問題:
使用window.event無法在MF上運行
(2)解決方法:
MF的event只能在事件發生的現場使用,此問題暫無法解決。可以這樣變通:
原代碼(可在IE中運行):
- <inputtypeinputtype="button"name="someButton"value="提交"onclick=""/>
- ...
- <scriptlanguagescriptlanguage="Javascript">
- functiongotoSubmit(){
- ...
- alert(window.event);//usewindow.event
- ...
- }
- < span>script>
新代碼(可在IE和MF中運行):
- <inputtypeinputtype="button"name="someButton"value="提交"onclick=""/>
- ...
- <scriptlanguagescriptlanguage="Javascript">
- functiongotoSubmit(evt){
- evtevt=evt?evt:(window.event?window.event:null);
- ...
- alert(evt);//useevt
- ...
- }
- < span>script>
此外,如果新代碼中第一行不改,與老代碼一樣的話(即gotoSubmit調用沒有給參數),則仍然只能在IE中運行,但不會出錯。所以,這種方案tpl部分仍與老代碼兼容。