state of the browsers · 2008. 10. 1. · a javascript browser detect is more trustworthy than a...
TRANSCRIPT
![Page 1: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/1.jpg)
State of the BrowsersPeter-Paul Koch (ppk)
http://quirksmode.orghttp://twitter.com/ppk
The Ajax Experience, Sept. 30, 2008
Hell is other browsers - Sartre
![Page 2: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/2.jpg)
quirksmode.org
![Page 3: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/3.jpg)
Today's topics
I'm not going to discuss many browser incompatibilities.
That means that your favorite bug will not be treated.
Sorry.
![Page 4: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/4.jpg)
Today's topics
- A bit of history- Compatibility patterns, with examples- Browser detects and how to do them right- A peek into the future
![Page 5: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/5.jpg)
A bit of history
![Page 6: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/6.jpg)
The browser market long ago
IE-NN-Opera
![Page 7: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/7.jpg)
Browser Wars, 1996-1999
![Page 8: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/8.jpg)
Browser Wars Era
A world divided
- Netscape Navigator- MS Internet Explorer
and they were incompatible.
![Page 9: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/9.jpg)
And when I say incompatible I mean really, deliberately incompatible document.layers
document.all
![Page 10: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/10.jpg)
Browser Wars Era
- Deliberate incompatibilities
Why?To leverage their competitor out of the market.
![Page 11: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/11.jpg)
Browser Wars Era
- Deliberate incompatibilities
That didn't work.
Why not?
![Page 12: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/12.jpg)
Users don't care which browser they're using.
If a site doesn't work they blame the site owner.
Whether that's fair or not.
![Page 13: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/13.jpg)
Browser Wars Era
- Deliberate incompatibilities
![Page 14: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/14.jpg)
![Page 15: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/15.jpg)
Browser Wars Era
- Deliberate incompatibilities- Ideological in nature
Microsoft is Evil.Why? Well, just because.
![Page 16: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/16.jpg)
Browser Wars Era
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: zero
![Page 17: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/17.jpg)
“Let's hope this works...” - some web dev guy
![Page 18: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/18.jpg)
Nope.
![Page 19: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/19.jpg)
Browser Wars Era
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: zero
Why?Because they were supposed to choose sides and shut up.
![Page 20: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/20.jpg)
Browser Wars Era
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: zero
But that didn't work because users don't care which browser they're using.
![Page 21: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/21.jpg)
Browser Wars Era
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: zero
![Page 22: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/22.jpg)
Until...
![Page 23: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/23.jpg)
Until...
![Page 24: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/24.jpg)
Browser Peace
IE 5.0 Windows was the first browser to decently support the W3C DOM.
And IE5 Mac did the same for CSS1.
Back then, Microsoft deserved to win.
![Page 25: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/25.jpg)
The browser market back then
IE-NN4-Opera
![Page 26: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/26.jpg)
Browser Peace 1999-2008?
Although Microsoft deserved to win back in 1999,it became complacentand didn't do anything for the next six years.
Other browsers profited from that.
![Page 27: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/27.jpg)
Today's browsers
- IE 7- Firefox 3.0- Safari 3.1- Opera 9.5- Chrome 0.2
![Page 28: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/28.jpg)
When IE gets it wrong
![Page 29: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/29.jpg)
When IE gets it wrong
<sigh />
The good news: Microsoft is actually working on it.
![Page 30: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/30.jpg)
Adding rulesto style sheets
styleSheet.insertRule(...);
![Page 31: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/31.jpg)
Adding rulesto style sheets
styleSheet.addRule(...);
Fortunately, this is easily solved.
![Page 32: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/32.jpg)
Adding rulesto style sheets
if (styleSheet.insertRule) {styleSheet.insertRule(...);
}else if (styleSheet.addRule) {
styleSheet.addRule(...);}
![Page 33: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/33.jpg)
Compatibility patterns
#1IE uses a different name for essentially the same functionality.
A simple code branch solves this problem.
![Page 34: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/34.jpg)
Event registrationelement.addEventListener
('click',someFn,false);
![Page 35: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/35.jpg)
Event registrationelement.attachEvent('onclick',someFn);
![Page 36: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/36.jpg)
Compatibility patterns
#2Minor browsers sometimes have to support major browsers' proprietary stuff.
![Page 37: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/37.jpg)
Event registrationelement.attachEvent('onclick',someFn)
function someFn() {this.style.backgroundColor = '#ffffff';
}
![Page 38: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/38.jpg)
Event registrationelement.attachEvent('onclick',someFn)
function someFn() {this.style.backgroundColor = '#ffffff';
}
You expect this to refer to the clicked element.
![Page 39: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/39.jpg)
Event registrationelement.attachEvent('onclick',someFn)
function someFn() {this.style.backgroundColor = '#ffffff';
}
Unfortunately this refers to the window.Except in Opera.
![Page 40: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/40.jpg)
Event registration
In other words:Opera is not buggy enough.
(Plz fix. Thx.)
![Page 41: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/41.jpg)
Compatibility patterns
#2bMinor browsers sometimes have to support major browsers' proprietary stuffand copy their bugs
![Page 42: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/42.jpg)
Ranges<body>
<blockquote>Web developers! Web developers! Web Web developers! Web developers!developers!</blockquote></blockquote><cite>Steve<cite>Steve Ball Ballmmer</cite>
</body>
![Page 43: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/43.jpg)
Ranges<body>
<blockquote>Web developers! Web developers! Web Web developers! Web developers!developers!</blockquote></blockquote><cite>Steve<cite>Steve BallBallmmer</cite>
</body>
![Page 44: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/44.jpg)
Ranges<body>
<blockquote>Web developers! Web developers! Web Web developers! Web developers!developers!</blockquote></blockquote><cite>Steve<cite>Steve BallBallmmer</cite>
</body>
In which nodes does the selection start and end?
![Page 45: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/45.jpg)
RangesIn which nodes does the selection start and end?
range.startContainerrange.endContainer
![Page 46: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/46.jpg)
RangesIn which nodes does the selection start and end?
Not possible in IE.(Well, OK, you could parse the HTML to search for the selection.)(Have fun.)
![Page 47: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/47.jpg)
Compatibility patterns
#3Sometimes browsers just don't support stuff at all.
Can't be helpedexcept by pressuring them.
![Page 48: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/48.jpg)
When IE gets it right
![Page 49: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/49.jpg)
Compatibility patterns
The difference between extensions and incompatibilities.
![Page 50: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/50.jpg)
When IE gets it right
Microsoft extensions.
99% are boring or useless1% are stunningly brilliant
![Page 51: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/51.jpg)
When IE gets it right
Brilliant Microsoft extensions
- :hover- innerHTML
Let's review a few more.
![Page 52: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/52.jpg)
Empty text nodes<body>
<blockquote>Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
How many children does the body have?
![Page 53: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/53.jpg)
Empty text nodes<body>
<blockquote>Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
How many children does the body have?
One childTwo childrenThree childrenFour childrenFive children
![Page 54: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/54.jpg)
Empty text nodes<body>
<blockquote>Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
How many children does the body have?
One childTwo childrenThree childrenFour childrenFive children
![Page 55: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/55.jpg)
Empty text nodesThe first child is not the blockquote
<body><blockquote>Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
![Page 56: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/56.jpg)
Empty text nodesbut the whitespace between body and blockquote
<body>.........<blockquote>
Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
![Page 57: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/57.jpg)
Empty text nodesand yes, that's totally absurd. Whitespace is unimportant in HTML.
<body>.........<blockquote>
Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
![Page 58: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/58.jpg)
Empty text nodesFortunately IE gets it right. The body has two children: the blockquote and the cite
<body>1) <blockquote>
Web developers! Web developers! Web developers!</blockquote>
2)<cite>Steve Ballmer</cite></body>
![Page 59: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/59.jpg)
Empty text nodes
Everybody gets it wrong.
Except for IE.
![Page 60: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/60.jpg)
Compatibility patterns
#4Deliberate incompatibilities
are wrong
except when you're right.
![Page 61: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/61.jpg)
Dropdown menu
You wantto know when the mouse exits the opened submenu.
![Page 62: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/62.jpg)
Dropdown menu
a.onmouseouta.onmouseovera.onmouseouta.onmouseovera.onmouseouta.onmouseovera.onmouseout
![Page 63: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/63.jpg)
Dropdown menu
a.onmouseouta.onmouseovera.onmouseouta.onmouseovera.onmouseouta.onmouseovera.onmouseout
Lots of stuff!Fun!
But has themouse left the submenu yet?
![Page 64: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/64.jpg)
Dropdown menu
Mouseover and mouseout aren't very developer-friendly.
That's why IE added mouseenter and mouseleave.
![Page 65: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/65.jpg)
Dropdown menu
You wantto know when the mouse exits the opened submenu.
![Page 66: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/66.jpg)
Dropdown menu
ul.onmouseenterul.onmouseleave...that's it
![Page 67: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/67.jpg)
Dropdown menu
works better with mouseenter and mouseleave.
IE-only.
![Page 68: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/68.jpg)
Compatibility patterns
#5This is a proprietary extension.
A way of saying “We think this is a good idea”If other browser vendors agree, it might become part of the standard
![Page 69: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/69.jpg)
When FF gets it wrong
![Page 70: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/70.jpg)
When FF gets it wrong(or at least ignores common sense)
There are a few methods and properties that are not defined in the spec but are nonetheless so totally useful that all browsers support them.Except for Firefox.
![Page 71: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/71.jpg)
children<body>
<blockquote>Web developers! Web developers! Web developers!</blockquote><cite>Steve Ballmer</cite>
</body>
![Page 72: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/72.jpg)
childrenFive children
document.body.childNodes[] -> 5 elements
But we're usually interested only in the children that are elements.
![Page 73: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/73.jpg)
childrenFive children, two of which are elements
document.body.children[] -> 2 elements
The blockquote and the cite. Just what we need
![Page 74: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/74.jpg)
contains
a.onmouseouta.onmouseovera.onmouseouta.onmouseovera.onmouseouta.onmouseovera.onmouseout
![Page 75: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/75.jpg)
contains
“Does the currently opened layer contain the element the user moused to?”
If No, the layer should close.
![Page 76: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/76.jpg)
contains
“Does the currently opened layer contain the element the user moused to?”
if (!current.contains(related)) {current.close();
}
![Page 77: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/77.jpg)
contains
“Does the currently opened layer contain the element the user moused to?”
if (!current.contains(related)) {current.close();
}
![Page 78: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/78.jpg)
Compatibility patterns
#5bThese are also proprietary extensions.
If they're a really good idea, all browsers should support them.(And FF 3.1 is.)
![Page 79: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/79.jpg)
Compatibility patterns
IE is not the only browser to refuse to support useful stuff for years on end.
![Page 80: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/80.jpg)
Browser incompatibilities will remain a fact of life for the near future.
That means we need to know which browsers visit our sites.
![Page 81: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/81.jpg)
Browser detects
are evilmost of the time
(you knew that, didn't you?)
![Page 82: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/82.jpg)
Browser detects1) To gather stats about browser use on your site.
2) To take application decisions.
![Page 83: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/83.jpg)
Browser detects1) To gather stats about browser use on your site. GOOD.
2) To take application decisions.
![Page 84: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/84.jpg)
Browser detects1) To gather stats about browser use on your site.
2) To take application decisions. EVIL
(most of the time)
![Page 85: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/85.jpg)
The problemOnce upon a time there were Mosaic and Netscape.
Now Netscape could do nifty stuff.- cookies- <center>
![Page 86: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/86.jpg)
The problemOnce upon a time there were Mosaic and Netscape.
Both sent a userAgent HTTP header back to the server.
(JavaScript: navigator.userAgent)
![Page 87: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/87.jpg)
The problem<% if userAgent.contains('Mozilla') %> <H1> <CENTER> Hello, <% cookie.name %>! </H1> </CENTER><% else %> <H1> You're really UNCOOL, you know? </H1><% endif %>
![Page 88: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/88.jpg)
The problemThen came IEIt wanted to end up on the right side of those browser detects.
Mozilla/3.0 (compatible; MSIE yadda yadda yadda)
![Page 89: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/89.jpg)
The problemThen came IEIt wanted to end up on the right side of those browser detects.
Mozilla/3.0 (compatible; MSIE yadda yadda yadda)
It disguised itself as Netscape.
![Page 90: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/90.jpg)
By the time the Browser Wars ended
![Page 91: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/91.jpg)
By the time the the Browser Wars ended
many web developers had decided to support only IE.
In retrospect, a sensible decision, given its market share and development ease.
![Page 92: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/92.jpg)
By the time the the Browser Wars ended
many web developers had decided to support only IE.
if (userAgent.contains('MSIE')) { <H1>Welcome</H1>} else { redirect('wrongbrowser.html')}
![Page 93: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/93.jpg)
But Opera could handle most of those sites
So what did Opera do?
It hid its identity.(More correctly: it allowed users to select a different identity.)
![Page 94: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/94.jpg)
Identify as Opera:Opera/9.26 (Windows NT 5.1; U; en)
Identify as IE:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.26
Mask as IE:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)
![Page 95: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/95.jpg)
Identify as Opera:Opera/9.26 (Windows NT 5.1; U; en)
Identify as IE:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.26
Mask as IE:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) ...
![Page 96: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/96.jpg)
Browser detectsBrowsers commonly lie about their identity
in order to bypass browser detects written by clueless web developers
That's OUR fault.
![Page 97: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/97.jpg)
Browser detectsBrowsers commonly lie about their identity
in order to bypass browser detects written by clueless web developers
That's OUR fault.
navigator.userAgent is unreliable
![Page 98: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/98.jpg)
Doing it right
1) Use a property meant for identification
such as window.operaor IE conditional comments
![Page 99: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/99.jpg)
Doing it right
1) Use a property meant for identification
2) Use navigator.vendor
It does not lie.Yet.
![Page 100: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/100.jpg)
Doing it right
1) Use a property meant for identification
2) Use navigator.vendor
3) Use navigator.userAgent and first detect the minor browsers
Resolve FF/IE only when you're certain that it's no other browser
![Page 101: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/101.jpg)
Doing it right
1) Use a property meant for identification
2) Use navigator.vendor
3) Use navigator.userAgent
![Page 102: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/102.jpg)
Doing it right
1) Use a property meant for identification
2) Use navigator.vendor
3) Use navigator.userAgent
The first two steps can only be done in JavaScript.
![Page 103: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/103.jpg)
Doing it right
1) Use a property meant for identification
2) Use navigator.vendor
A JavaScript browser detect is more trustworthy than a server side one.
![Page 104: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/104.jpg)
What's next?
IE, Firefox, Safari, OperaNow Chrome
A shake-up is inevitable.
![Page 105: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/105.jpg)
Browser Wars II, 2008-?
![Page 106: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/106.jpg)
A world divided?
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: zero
![Page 107: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/107.jpg)
A world divided?
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: zero
![Page 108: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/108.jpg)
A world divided?
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: some
![Page 109: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/109.jpg)
A world divided?
- Deliberate incompatibilities- Ideological in nature- Influence of web devs: some
![Page 110: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/110.jpg)
Ideology
Microsoft is Evil.
Yawn.
![Page 111: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/111.jpg)
Go to war again?
To defeatthe Evil Empire?
![Page 112: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/112.jpg)
Go to war again?
Or to gain statusand nice medals?
![Page 113: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/113.jpg)
Or maybe...not go to war at all ... ?
![Page 114: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/114.jpg)
Go to war again?
The only reason would be to influence changes in the browser market.
But can we?And if we can, should we?
![Page 115: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/115.jpg)
The current browser market
IEChromeFFSafariOpera
![Page 116: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/116.jpg)
The future browser market?
IEChromeFFSafariOpera
![Page 117: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/117.jpg)
New fronts: Mobile
![Page 118: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/118.jpg)
New fronts: Mobile
iPhoneOpera MiniOpera MobileWindows MobileGoogle Android...
![Page 119: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/119.jpg)
New fronts: Mobile
Will browser quality play a role in consumers' choice for a mobile device?
I doubt it.
![Page 120: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/120.jpg)
A quote from Nate Koechley
“Why do we needmore than one browser?”
Seriously, though.
![Page 121: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/121.jpg)
“Why do we needmore than one browser?”
Our answer:Competition, which fosters innovation.
![Page 122: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/122.jpg)
Competition, which fosters innovation.
Is that good enough?Good enough to force countless web developers to spend thousands of hours on solving browser incompatibilities?
![Page 123: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/123.jpg)
“Why do we needmore than one
browser?”If you have an answer, let me know.
![Page 124: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/124.jpg)
To wrap it up
Browsers will continue to move towards each other in terms of compatibility.
The browser market is going to change rapidly over the next year or so.
Maybe there'll be another browser war. I hope not, though.
![Page 125: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/125.jpg)
Thank you
![Page 126: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/126.jpg)
Questions?
![Page 127: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/127.jpg)
![Page 128: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/128.jpg)
![Page 129: State of the Browsers · 2008. 10. 1. · A JavaScript browser detect is more trustworthy than a server side one. What's next? IE, Firefox, Safari, Opera Now Chrome A shake-up is](https://reader035.vdocuments.net/reader035/viewer/2022071108/5fe37e6ad67195540822d650/html5/thumbnails/129.jpg)