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?
Why /*@ isn't a comment in JavaScript?
Asked Answered
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).
But if this
/*@
is only for IE, why this script is included in html with another condition: <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
. What this double-check is needed for? –
Poulterer I 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. –
Lynnett
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.
It's a hack that uses IE's strange way of not considering /*@
a comment.
© 2022 - 2025 — McMap. All rights reserved.