Memoirs of a Web Developer, Part 4: The First Browser War
In case you missed it, here are Part 1, Part 2, and Part 3.
Memoirs of a Web Developer, Part 4: The First Browser War
In case you missed it, here are Part 1, Part 2, and Part 3.

By 1999, the First Browser War was in full swing, with Netscape Navigator and Microsoft Internet Explorer embroiled in a fierce battle for dominance. Both web browsers sought to introduce proprietary features that would differentiate themselves from their competition. Out of the ashes of that war came JavaScript.
That summer, I started a six-month internship at a large technology company as a “webmaster,” responsible for creating, deploying, and maintaining a web site. This included all aspects from web design, to development, to server administration. My purview was a departmental web site on the company’s intranet.
But I couldn’t just make a plain ol’ web site. I had recently heard of a new concept, *dynamic HTML*, which combined HTML and JavaScript (or other scripting languages) to create interactive experiences within the web browser.
I drove from the office to Barnes & Noble, and bought a very thick book on dynamic HTML. I read it cover-to-cover. I was ready to make my mark on the company intranet.
Because of the First Browser War, Netscape and Microsoft had different ways of accessing the browsers’ document object models (DOMs). The DOM helps the browser figure out how to draw the web page. JavaScript could be used to access and manipulate the DOM, allowing the interactive features.
And because of these browser differences, web developers began choosing sides, and the Web became littered with browser badges:

Clicking on the badge typically brought the user to a download page for the corresponding browser.
I knew there had to be a better way.
I spent the first weeks of that internship learning how to write cross-platform JavaScript code. I got pretty good at it, too. I figured out that I could detect which browser my code was running in, and access the DOM in different ways depending on the browser. Then I wrote a compatibility layer and used that to write the interactive code. I could write code once using the compatibility layer and run it everywhere.
I tested it on every browser I could get my hands on: Netscape Navigator on Windows, Mac OS, and Linux/UNIX; Internet Explorer on Windows and MacOS; and Mosaic on UNIX.
As it turns out, cross-platform compatibility was still a thing into the late 2010s, until Internet Explorer was officially retired. And that’s just how it was. It was a fact of life… if you cared about compatibility.
메타데이터
- post_id
- 4d54e8d9a42e
- slug
- memoirs-of-a-web-developer-part-4-the-first-browser-war-4d54e8d9a42e
- url
- https://medium.com/@gromit1463/memoirs-of-a-web-developer-part-4-the-first-browser-war-4d54e8d9a42e
- canonical_url
- https://medium.com/@gromit1463/memoirs-of-a-web-developer-part-4-the-first-browser-war-4d54e8d9a42e
- author_url
- https://medium.com/@gromit1463
- status
- ok
- fetched_at
- 2026-06-29 02:33:43