2004:Firefox 1.0 問世#
事件#
2004年11月9日,Mozilla 基金會發佈 Firefox 1.0,上市首年下載量破億,市佔率從不到5%攀升至兩位數,終結了 IE 6 的絕對壟斷。
為何重要#
- 第二次瀏覽器大戰開打,瀏覽器重新進入快速迭代時代。
- Firefox 對 W3C 標準(DOM 2、CSS 2)的忠實實作,加上2006年的 Firebug 除錯工具,讓 Ajax 應用(見 2005-Ajax革命)的開發從「地獄模式」變成可行。
- Firefox 的 XPCOM/XUL 擴充套件機制是最早的「用 JS 打造平台生態」實驗,啟發了後來的瀏覽器擴充與 Node.js 模組思維。
理論與實用原因#
- 實用原因:網頁開發者與使用者苦 IE 6 安全漏洞與停滯已久;市場需要一個現代替代品。
- 理論原因:Mozilla 證明「標準優先 + 社群開發」可以對抗商業壟斷,確保 JavaScript 的演進不由單一公司決定。
彌補了什麼缺陷#
彌補了2001–2004年間瀏覽器創新停滯、JavaScript 語言本身也因 ES4 內戰而凍結的「雙重停滯」——Firefox 用標準實作讓既有 ECMAScript 3 的能力(見 1999-ECMAScript3正則表達式與例外處理)真正發揮出來。
相關條目#
程式範例#
Firefox 時代的標準實作,與 IE 專屬寫法的對照:
// 阻止預設行為:兩個世界
function handler(e) {
// W3C 標準(Firefox 正確實作)
e.preventDefault();
e.stopPropagation();
// IE 專屬(return false 存在 window.event returnValue)
window.event.returnValue = false;
window.event.cancelBubble = true;
}
以及 Firefox 的 XUL 擴充套件機制——最早的「JS 打造平台生態」實驗:
<!-- Firefox 擴充套件的 XUL 介面(XML-based UI) -->
<toolbarbutton id="my-button" label="我的按鈕" oncommand="alert('hi')" />
XPCOM/XUL 後來被更簡單的 WebExtensions API 取代,但「瀏覽器是可程式化平台」的概念由此確立——影響了 Chrome 擴充、Node 模組與 Electron 的設計。