2011-08-11 44 views
0

這是一個由兩部分組成的問題。如何在編寫Javascript時處理IE瀏覽器

爲什麼IE在處理Javascript時需要這麼多特殊待遇?除了Firebug Lite之外,還有沒有什麼技巧,資源和/或系統可以讓你的js IE兼容?

+1

你指的是什麼特殊待遇?我想不出那麼多的JavaScript問題,特別是當你使用像jQuery這樣的庫時。視覺(CSS)的差異很多,更極端 –

+1

閱讀其他人的js代碼我經常看到評論,如「需要使IE工作」或「IE扼流圈_x_所以這裏是_y_」我猜這裏有不是很多這些特殊情況下,但他們肯定在那裏,我不知道什麼時候期待我需要圍繞他們編碼。 –

+0

@Pekka - 有一個類似jQuery的庫來處理你的特殊處理問題並不意味着這些問題不存在。雖然我同意CSS的東西。 – nnnnnn

回答

2

使用標準化的庫,如J-query,所以你不必跳過所有的工作在JavaScript方面的籃球!

此外,雅虎用戶界面(YUI)可以讓網站在不同的瀏覽器上看起來非常相似。他們的Grids圖書館工作得很好。

+0

謝謝我現在在看YUI。問題是我在谷歌地圖上做了很多自定義代碼,我不確定jQuery能做到我需要的所有東西,儘管我已經在某些功能上使用它了。 –

+0

YUI真是太棒了:)它需要一點時間才能習慣如何編碼佈局,但最終的結果是值得的! – Darkzaelus

+0

是的,它看起來像js位很像jQuery。 –

2

請您詳細說明您所指的是什麼?

它的核心是JavaScript,在過去的10年裏基本上是一樣的。如果您擔心較舊的IE版本(IE6-7),您可以保持冷靜。 IE6與JavaScript 1.5支持發佈,所以所有的JS代碼應該運行良好。 Mozilla在their MDC site有一個非常好的JS ref文檔。在每個頁面的底部,通常會列出支持該特定功能的每個瀏覽器的版本。

但是瀏覽器之間的差別通常在於DOM執行或事件處理。在屬性名稱不同的情況下,這些屬性主要與元素/滾動位置有關。

要找到使用,檢查開發者工具(螢火蟲在IE瀏覽器,開發者工具中的Webkit或開發人員工具欄中IE)爲瀏覽器找到你正在尋找正確的屬性。如果您不確定使用debugger;關鍵字在代碼中的JavaScript斷點處設置了關鍵字,或者使用console.log()將某些內容發送到控制檯。在IE開發工具欄可以從IE8 +(我認爲)。

這些問題大部分已經解決了主要的JavaScript框架如jQuery,MonoTools等。

+0

你是個好人,我正在爲此頁添加書籤 –

2

兩個主要的「特殊待遇」的東西,腦海中出現:

  1. 活動。包括事件處理程序的分配,事件對象可用於處理函數的方式以及事件對象的一些屬性。請參閱此頁獲取更多信息:http://www.quirksmode.org/js/introevents.html
  2. Ajax。使用XMLHttpRequestActiveXObject("Microsoft.XMLHTTP")

大多數其他一切都應該罰款。

你可以寫自己的一些(相對)簡單的輔助函數來獲得解決這些問題,或者使用像jQuery庫正常化的差異爲您服務。如果你把它寫自己,一定要測試功能的支持而不是試圖以測試其瀏覽器 - 看到這個(長)文章中的解釋:http://jibbering.com/faq/notes/detect-browser/(我敢肯定,還有周圍的短的解釋,但我可以」 T爲打擾如果你在你的頁面使用jQuery,那麼你可以檢查即使用此代碼

if ($.browser.msie && $.browser.version == '6.0') { 
    //do IE specific code 
} 

此代碼,當用戶瀏覽器將成爲IE 6只運行找到一個。)

+0

哈哈不用擔心,我會做研究,我只需要一個正確的方向。謝謝。 –

1

。0或者你離開這個條件