用AJAX開發 不可避免的要遇到瀏覽器不同,實現不同的問題,下面是AoiUmi的一些總結。
1:innerText
IE支持,FIREFOX不支持
解決辦法:用innerHTML,2種瀏覽器都識別innerHTML
2:document.createElement
document.appendChild
在往表里插入行時
FIREFOX支持,IE不支持
解決辦法:把行插入到TBODY中,不要直接插入到表
3:setAttribute('style','color:red;')
FIREFOX支持(除了IE,現在所有瀏覽器都支持),IE不支持
解決辦法:不用setAttribute('style','color:red')
而用object.style.cssText = 'color:red;'(這寫法也有例外)
最好的辦法是上面種方法都用上,萬無一失 ^_^
4:class
setAttribute('class','styleClass')
FIREFOX支持,IE不支持(指定屬性名為CLASS,IE不會設置元素的CLASS屬性,相反只使用SETATTRIBUTE時IE自動識別CLASSNAME屬性)
解決辦法:
setAttribute('class','styleClass')
setAttribute('className','styleClass')
2種都用上
5:用setAttribute設置事件
var obj = document.getElementById('objId');
obj.setAttribute('onclick','funcitonname();');
FIREFOX支持,IE不支持
解決辦法:
IE中必須用點記法來引用所需的事件處理程序,并且要用賦予匿名函數
如下:
var obj = document.getElementById('objId');
obj.onclick=function(){fucntionname();};
這種方法所有瀏覽器都支持
6:建立單選鈕
IE以外的瀏覽器
var rdo = document.createElement('input');
rdo.setAttribute('type','radio');
rdo.setAttribute('name','radiobtn');
rdo.setAttribute('value','checked');
IE:
var rdo =document.createElement("<input type='radio' name='radiobtn' value='checked'>");
解決辦法:
這一點區別和前面的都不一樣。這次完全不同,所以找不到共同的辦法來解決,那么只有IF-ELSE了
萬幸的是,IE可以識別出document的uniqueID屬性,別的瀏覽器都不可以識別出這一屬性。問題解決。
0:共同的一些技巧
在動態建立INPUT型輸入元素時,一般是先加入,在設置TYPE。這就有可能出錯
好習慣:var btn = document.createElement('input');
btn.setAttribut('type','button');
document.getElementById('formId').appendChild(btn);
posted on 2007-01-26 09:51
周銳 閱讀(304)
評論(0) 編輯 收藏 所屬分類:
Ajax