This script http://html5shiv.googlecode.com/svn/trunk/html5.js looks like a big comment, but it works. Why /*@ doesn't behave like a comment?
Asked
Active
Viewed 633 times
15
-
1More on SO related to this [here](http://stackoverflow.com/questions/1843247/cc-on-and-ie6-detection) – Wesley Murch Apr 08 '11 at 13:56
3 Answers
22
This uses a proprietry Microsoft feature called conditional compilation. As far as non-Microsoft browsers are concerned, it is a comment (but they don't need the shiv).

Quentin
- 914,110
- 126
- 1,211
- 1,335
-
But if this `/*@` is only for IE, why this script is included in html with another condition: ``. What this double-check is needed for? – Larry Foobar Apr 08 '11 at 14:08
-
4I can only guess at the author's motivation, but conditional comments stop other browsers trying to download it, while conditional compilation stops it being executed if you roll it up into your standard single minified JS package. – Quentin Apr 08 '11 at 15:15
5
Here some more info and the source.
It is a comment - multiline comment. All browsers suports comments ( // or /* ... */ ) in JavaScript. But only IE checks for the @ in the comment and recognize the part of the script for the conditional compilation. This is for usage of the non-standart Microsoft features.
There is also conditional commentsMSDN in HTML, which will be removed in IE10.

Bakudan
- 19,134
- 9
- 53
- 73