Conditional comments verkar inte fungera runt en <script type="text/javascript">. Så hur kan jag göra så att nedanstående script endast körs om webbläsaren inte = IE?
Peter S: Dumt. Det finns andra läsare (t ex Opera) som har document.all tillgängligt för att vara kompatibla t med IE. Använd istället jQuery's egna variabel:
RED ->
Detta kallas conditional compilation och är MSIE JScripts motsvarighet till conditional comments. Mer info:
http://msdn.microsoft.com/en-us/library/ahx1z4fs(VS.80,loband).aspx
Apropå feature-checking, vad säger Opera resp. IE om man gör:
if (window.opera || !document.all || !window.event)
Villkoret är normalt sant i alla läsare. Det faller på window.event som är null när inget event-hanterare är aktiv i IE, och !null = true. Visserligen kanske window.event är ett objekt när koden körs, iom att den kallas genom window.onload, men det känns ändå lite skakigt.
if (window.opera || !document.all)
...bör räcka om man verkligen vill göra så, men jag hävdar att object detection bara bör användas på objektet man vill komma åt.
Jag gissar att skritet ifråga använder sig av läsarspecifika CSS-attribut, inte läsarspecifika Javascript-funktioner.
Nitro: Just window.event borde man kunna skippa i detta fall och köra med ditt andra förslag. Lägger man window.event inuti ready() så fungerar det men känns...bara fel :)