2008-08-17 85 views
4

你知道在不同的瀏覽器中處理HTML標籤/屬性有什麼不同嗎?例如,我曾經看到一個帶有maxlength字段設置爲「2o」的輸入標籤的頁面。 Firefox和Opera忽略「o」,並將最大長度設置爲2,而Internet Explorer完全忽略該字段。你還知道嗎?瀏覽器之間的HTML差異

(注:看見,因爲這可能會是一個清單,這將是巨大的,如果差的通用名稱是粗體字,如:不同的飄忽不定值變量屬性處理

回答

3

如果您使用javascript進行編程,我可以給出的最佳建議是使用JavaScript庫而不是試圖推出自己的。這些庫已經過很好的測試,並且角落案例更有可能遇到。

Scriptalicious - http://script.aculo.us/
的jQuery - http://jquery.com/
微軟AJAX - http://www.asp.net/ajax/
道場 - http://dojotoolkit.org/
原型 - http://www.prototypejs.org/
YUI - http://developer.yahoo.com/yui/

+0

我很確定這是「script.aculo.us」,而不是「Scriptalicious」... – 2009-04-23 02:46:51

0

的一個真正讓我生氣是IE的破碎的document.getElementById javascript函數 - 在大多數瀏覽器中,這會給你帶有你指定的id的東西,IE很樂意給你在name屬性中具有價值的東西,即使文檔後面有某些內容與你要求的ID一致。

8

的Bug列表

Web開發人員已經整理了一些非常全面的列表;我認爲編制資源清單比複製這些清單更好。

的Javascript

我同意Craig - 這是最好的使用處理分歧庫JavaScript程序在瀏覽器之間(如以及簡化命名空間,AJAX事件處理和上下文之類的事情)。這是跳到克雷格的答案(在這個頁面上)。

CSS重置

CSS重置可以真正簡化Web開發。它們會覆蓋瀏覽器之間略有不同的設置,以便爲您提供更加通用的起點。我喜歡雅虎的YUI Reset CSS

+0

「跳到克雷格的答案」URL指向「beta.stackoverflow.com」而不是「stackoverflow.com」。結果是我的瀏覽器(Safari 4)試圖去「beta.stackoverflow.com」,但後來被重定向到「stackoverflow.com」,並失去了散列...然而,我不確定這個URL是否是必需的 - 你應該只能寫這個哈希:''。 – 2009-04-23 02:55:20

0

我曾經看到一個頁面,其中一個輸入標籤 設置爲「20」一個最大長度字段。

在這個特定的情況下,你說的是無效的代碼。 maxlength屬性不能包含字母,只能包含數字。

瀏覽器對無效代碼所做的操作各不相同,您可以親自看到。

如果你真的在問:「面對HTML代碼時,所有不同的瀏覽器做了什麼,因爲無數的原因中的任何一個被破壞?」,那就是瘋狂。

使用有效的代碼我們可以通過大大減少問題空間。

因此,使用有效的HTML。然後你留下了兩個主要問題領域:

  • 瀏覽器的bug - 瀏覽器如何遵循HTML標準,它在瀏覽器中默認錯誤
  • 差異,比如填充量是什麼/保證金它給在HTML模式XHTML的身體
0

不一致解析

HTML解析器不是設計來處理XML。

如果XHTML文檔擔任「text/html的「和the compatibilities guidelines不遵守你可以得到意想不到的效果。

空標籤是問題的一個可能來源。<標籤/ >和<標籤> < /標籤>在XML等價的。但是HTML解析器可以從兩個方面加以解釋。

例如Opera和IE治療<BR> </BR >兩個<BR>但是Firefox和WebKit可以治療<br> </br >作爲一個<br>。

相關問題