2013年10月8日 星期二

Firefox 和 Chrome 不支援 IPv6 Link-Local Address + Scope ID 的原因

因為 RFC3986 中對於 % 使用的規定,Firefox 和 Chrome 並不支援 URI 使用 IPv6 Link-Local Address + Scope ID (Firefox 曾經在一些版本中有支援但後來已移除)。
不過因為 RFC6874 的定義,未來大家應該都會支援在 URI 使用 IPv6 Link-Local Address + Scope ID。

Reference:
http://code.google.com/p/chromium/issues/detail?id=70762
http://tools.ietf.org/html/rfc3986
http://tools.ietf.org/html/rfc6874

window.location.hostname 遇到 IPv6 Address 的相容性問題

當我們在瀏覽器輸入 IPv6 的 Address 時前後會帶中括號 [] 將 IPv6 的 Address 包起來,
但相同的 IPv6 URI,當我們用 window.location.hostname 取值時,不同瀏覽器上會回傳不同的字串。

在 IE 和 Firefox 回傳的 IPv6 Address 沒有帶中括號。
但 Chrome 回傳的有。

當我們使用 window.location.href 時,如果 URI 中有包含 IPv6 的 Address 時,則不管什麼瀏覽器都要帶 [] 中括號才能正常的運作。

以後應該會統一,但目前在透過 JavaScript 作頁面轉換處理時要注意。

Reference:
http://lists.w3.org/Archives/Public/public-html/2010Dec/0183.html