jag har en funktion som bara fungerar i explorer
nu vill jag ha en if sats
if webbläsare = explorer then
funktion
end if
9 svar · 489 visningar · startad av nille99
jag har en funktion som bara fungerar i explorer
nu vill jag ha en if sats
if webbläsare = explorer then
funktion
end if
[red]if (navigator.appName == "Microsoft Internet Explorer") {
//function()
}[/red]
Denna koll kommer även få Opera att läsa funktionen. Om den är satt att kännas igen som IE, vilket är default.
Denna funktion körs endast i IE:
var nav = navigator.userAgent;
if(nav.indexOf("MSIE") > 0 && !(nav.indexOf("Opera") > 0))
{
alert("IE!");
}
Eller kanske ändå bättre att känna av IE's DOM eftersom det ofta är det som är begränsningen i alla fall :)
if(document.all){
// IE_only_function();
}
Som bekant stödjer även Opera document.all, så PepeJerias kod är nog att föredra ;)
Vad jag menade var att om det är IE-DOM som används i scriptet så är det bättre att känna av den än webbläsarnamnet. Om så är fallet är det ju möjligt att det även fungerar i Opera (precis som du säger) - och därmed synd att låsa ute den.
Skulle givetvis ha skrivit IEDOM_only_function(); Mea culpa.
if (document.all && !window.opera)
Vad window.opera är har jag ingen aning om men det ska visst fungera :)
opera är ett objekt som företaget med samma namn introducerade i sin webbläsare i och med version fem.
Ett potentiellt problem med ovanstående kod är om författaren av skriptet skapar en variabel med namnet opera inom samma spännvidd som if-satsen:
var opera = "La Traviata";
if (document.all && !window.opera) { // Oops!
IE-specifik kod...
}
;)
<!--[if IE]>
<script type="text/javascript">
funktion();
</script>
<![endif]-->
Ska fungera om jag inte missminner mig totalt. :)
Detta valideras korrekt även om det är IE-specifikt eftersom att alla andra webbläsare och validerare tolkar det hela som en kommentar mellan <!-- och -->. :)
Läs mer om detta på http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndude/html/dude071798.asp under "HTML is Conditional"
Har aldrig riktigt använt mig av conditional comments, men jag antar att det är ok.
Lite off-topic nu kanske, men jag tycker ändå att det bästa sättet att är att skippa browser checks, och i stället kolla om browsern stöder en viss metod, tex
if(document.documentElement.outerHTML){ }
Med tanke på att alla browser idag har en sådan otroligt bra stöd för standards så klarar man sig rätt bra utan att ha någon koll alls. Förutom då man använder sig av specifika events och properties, typ onselectdrag, outerHTML etc