最近踩的地雷真多, IE 對 margin-top 的負數, IE6/7 都不同, 然後臨時又發現 JavaSciprt 的檢查在 IE 有問題, 大概情況是如下:
做圖片上傳, javascript 的檢查最簡單的就是檢查檔名後四個字元, 再轉小寫, 去看看是不是 .jpg, jpeg, .bmp, .png ... 等. 於是就用 substr 來取最後四個字元囉~
用 JavaScript substr() 取最後四個字元 並轉小寫, 很直覺得就是 filedata.substr(-4, 4).toLowerCase(), 然後在 Firefox 和 IE 情況各如下:(ex: 檔名是 filename.jpg)
- Firefox 測試很正常就抓到檔名的後四個字元.(抓到 .jpg)
- IE 會把 -4 當 0, 然後抓檔名前四個字元.(抓到: file)
只怪當初看完說明後, 沒有仔細看下面還有 Tips, Tips 有說 IE 的第一個參數是由 0 開始(不能為負數), 所以只好改用下面兩行解決囉~
var begin = filedata.length - 4; // 取總長度 -4
var filetype = filedata.substr(begin, 4).toLowerCase(); // 從總長度 -4 為起點, 取 4個字元
這樣子就可以抓到檔名的後四個字了. 🙂