前端開發兼容低版本IE註意事項
1.如果要在地址中使用中文參數的話,使用encodeURIComponent()對中文進行編碼,否則在老版本的IE中可能出現地址錯誤(400)。
2.在任何業務情況下,後臺傳過來,前端解析的參數都要明確的值,即使是‘’或者[],盡量不要存在null,如果可能會出現不同的對象走同一條業務流程,加上if("undefined"!==typeof obj.xxx){},不要出現未定義的對象,它會使低版本的IE報錯。
3.當前使用的使IE8兼容placeholder屬性的placeholder.js,在IE8中會使input的值變為提示信息,註意進行判斷。
4.使用arcgis時,不要把地圖id定義為‘map‘。
5.盡量不要使用敏感的字符作為對象,比如’import‘,如果一定要用,使用obj[‘import‘]進行引用,不要使用obj.import。
6.初始化UEeditor插入內容時不能直接插入內容(較長的異步初始化),需要在ready之後進行添加UE.getEditor(‘zym‘).addListener("ready", function (){UE.getEditor(‘zym‘).setContent(‘‘);});
當UEeditor與彈出框結合使用時可能出現設置內容沒有顯示的bug,此時可以試試setTimeout延時添加內容。
7.在不支持fixed的ie8中使用layer的iframe彈窗可能出現滾動條自動回到頂部的bug,這時可以延 時執行一個函數將滾動條拉回來。(這種方式可能會造成頁面閃動)。
8.當使用ellipsis樣式的時候在標簽中添加title屬性。
9.低版本ie上可能出現選定input時光標跳到最前的bug,此時可以添加focus監聽事件根據輸入值移到最後。
10.任何完整的js語句之後都應該加‘;’,否則壓縮後的js或低版本的IE會因此報錯。
11.IE8不支持rgba顏色格式,要加透明度請使用opacity屬性。
12.低版本IE並不支持console語句,兼容需要全局定義一個window.console方法。
13.低版本IE對象遍歷(for in)結果會出現亂序現象。
前端開發兼容低版本IE註意事項