微軟提供的 IE{7,8,9,10} 測試環境...

微軟前幾天公開了 IE{7,8,9,10} 測試服務:「Testing made easier in Internet Explorer」。

測試服務包括:

  • 網站版本,可以測試公開網站。
  • 虛擬機版本,可以測試內部網站。這次除了提供 Virtual PCHyper-V 版本的映像檔外,還提供了 VMware PlayerVirtualBox 版本。

不過這些檔案會不會太大了點... 我是抓 VirtualBox 版本,IE10_Win8.zip 居然有 2.7GB,為了真實模擬,所以把整個 Win8 包進去嗎 XDDD

jQuery 2.0 將放棄 IE{6,7,8} 的事情...

這是 StatCounter 的統計數字,IE8 有 13.28%,IE7 有 1.33%,約 14.61%:

現在是 2012 年年中,在 IE7 + IE8 還有 14+% 的數字的情況下決定要在 2013 年年初推出不支援 IE{6,7,8} 的 jQuery 2.0,這在 John Resig 還「當政」的時代大概是不可思議的事情:「JQUERY CORE: VERSION 1.9 AND BEYOND」、「JQUERY 1.9 AND 2.0 — TL;DR EDITION」。

如果照著這個步調走,要不是 jQuery fork 崛起,不然就是其他的 Framework 幹掉 jQuery...

網路隱私權的改善:Do Not Track

國內各網站都不太提這個東西,大概是因為他們都得靠廣告維生,所以完全不提... XD

2007 年的時候 pesty 寫過一篇文章,關於網路廣告平台要如何判斷你的「特徵」(以文章內的例子,可以判斷出你的性別):「網路廣告商怎麼知道你是誰? 從 ClickStream 來判斷用戶資料」,這樣可以藉由更精準的投放,提高廣告的成效。

以 pesty 舉出的例子來說,假設你逛過 26 個網站,其中五個有 DoubleClick 廣告,那麼 DoubleClick 就可以依據這些資料,以及統計方法,分析你的特徵:(圖有點大張,請點小圖看大圖)

不少廣告商都有提供 opt-out (退出) 的功能讓你不被分析,但網路廣告商這麼多,你不太可能一個一個去各網站設定退出。所以有些人寫了 Firefox 套件「自力救濟」,你只要裝了這些套件就可以自動退出上百個廣告商的分析:「Beef Taco (Targeted Advertising Cookie Opt-Out)」、「Targeted Advertising Cookie Opt-Out (TACO)」。

另外則是有群人開始提議,是不是可以直接在瀏覽器裡面設定,當每次開網站的時候都固定送出某個資訊,告訴這些網站 (以及廣告商) 你不願意讓他們分析使用者行為。這個提議也就是標題所提到的「Do Not Track」。這個提議也送到 IETF (網際網路工程任務組) 及 FTC (美國聯邦貿易委員會,這是個美國政府單位),希望能夠變成 IETF 標準,並且可以透過法律強制執行:「Do Not Track FTC Comment: What It Means, How to Enforce It, and More」。

最近 IE9 與 Firefox4 都內建了 Do Not Track 機制,預設是關閉的。以 Firefox 4 的設定來說,滑鼠游標在的那個選項就是 Do Not Track:

如果你還在用 Firefox 3.6 也沒關係,Adblock Plus 新版 (1.3.5) 也要支援 Do Not Track 了:「Do Not Track support in Adblock Plus」。

設上去以後連任何站台都會送 DNT header,滑鼠游標在的那個地方就是 DNT header:(圖有點大張,請點小圖看大圖)

IE9 的部份因為沒有在用,所以暫時沒有截圖可以看... XD

window 的 hashchange (onhashchange) 事件

hashchange 是 HTML5 event,紀錄一下目前支援的情況:

目前 IE6/IE7 常見的模擬方式是透過 hidden iframe 做類似的效果...

另外在偵測瀏覽器是否有支援 hashchange 可以利用「Detecting event support without browser sniffing」這篇說明的方式偵測是否有支援特定的 event,可以避免使用 browser sniffing。

微軟推出 IE6 Countdown 網站

微軟推出了 IE6 Countdown 網站,希望可以把 IE6 的佔有率壓到 1% 以下。以目前網站上更新的數字,台灣是 10.7%...

不過上面的數字是以 2011/2/28 的數據產生出來的,這天雖然是星期一,但台灣剛好是國定假日,使用公司電腦的人少很多,這使得使用 IE 的人也少很多 (可以參考 StatCounter 的數據)。如果抓平常日的數字,大約在 14% 上下,超過印度的 12.3%。

IE6 是 2001 年 8 月 27 日出版,快要滿十年了,不知道有沒有機會在十週年生日前 (七月的報表) 看到他 5% 以下...

如果可以不用管 IE6 的話,有什麼好處呢?先不論 bug 的問題,光是網頁設計時的 css selector 就多出許多可以用:(圖片來自「CSS selectors and pseudo selectors browser compatibility」)

用 IE 的 conditional comments 建立 class

IE 的 Conditional comments 可以拿來建立對應的 class,可以減少 css 使用 IE hack 的情況 (有些 IE hack 會使得 css 的語法不正確,用工具壓縮後可能會出問題),以 IE6 為例,下面的例子可以把 IE6 與 IE7 分別標上 class="ie6" 或是 class="ie7"

<!--[if IE 6]><body class="ie6"><![endif]-->
<!--[if IE 7]><body class="ie7"><![endif]-->
<!--[if gt IE 7]><!--><body><!--<![endif]-->

這個方式不需要 javascript,而且是合法的 HTML (只有 IE 會看懂 comment 內的說明)...

Protocol Preserve URI 的過濾

雖然知道 //host.domain/path 這種 Relative Protocol 用法 (而且也用很久了),不過最近在 irc.perl.org 上的 #plack 剛好有人提到,再加上最近剛好有人在探討安全性問題:「Bypassing "RequestPolicy" Using Protocol Relative URLs」,剛好可以拿出來再說一次。

簡單來說就是「以 / 開頭的 URI 並非一定是 same origin,不可以以此當作 same origin 的判斷」。因為「//ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js」這種用法是正確的用法,表示保留 Protocol。

另外講些題外話,這個用法也還是有缺點,用在 IE 的 css 時會造成重複抓取 (到 IE9 都還是):「CSS files downloaded twice in Internet Explorer with protocol relative URLs」,script 或是 relative path 都不會,只有 css 會...

反過來說,因為 js 的部份大家都沒問題,所以當使用 Google 提供的 jQuery 時,「永遠」都應該使用「//ajax.googleapis.com/...」,因為 Google Libraries API 是同時支援 HTTP 與 HTTPS 的。

單一 IP/Port 多個 SSL Certificate:SNI

SNI 是「Server Name Indication」的縮寫,是 SSL Virtual Hosting 中很重要的一塊。

到目前為止,最主要是卡在 Windows XP 平台的 SSL/TLS 沒有支援,導致使用系統 SSL/TLS Library 的 IE6/7/8 都不支援 SNI。以 gs.statcounter.com 的數據「Top 5 Operating System from Jan 10 to Jan 11」來看,Windows XP 還有 48% 的市占率...

要等到 Windows XP 的市占率夠低後才有機會看到 SNI CDN...

Firefox 在歐洲的市占率首次超越 IE

如標題,StatCounter 統計資料顯示 Firefox 在歐洲的市占率首次超越 IE:「Firefox overtakes Internet Explorer in Europe in browser wars」。

不過由圖可以看出來,並不是 Firefox 這一年有顯著成長而超越 IE,而是 Google Chrome 在這一年吃掉 IE 下滑的部份。

同樣以 StatCounter 的資料來看,台灣的 IE 佔有率在 77% 左右,Google Chrome 的市占率應該會在這半年內超越 Firefox。好事是 IE6 的佔有率愈來愈低了,目前是 17% 左右,而且有機會在這半年內降到 10% 附近... 2012 年設計網頁應該可以忽略這個古董了...

企業不肯換到 Windows 7 的原因是...

因為不能跑 IE6:「IE6 Addiction Inhibits Windows 7 Migrations」(Slashdot)、「IE6 addiction throws monkey wrench into Windows 7 migration」(Computerworld)

主要是因為有很多企業內部網站已經年久失修,只能跑 IE6...

依據 StatCounter 的統計,台灣地區還是有 21% 的使用者用 IE6:「Top 12 Browser Versions in Taiwan from Oct 09 to Sep 10」。