webForumDet fria alternativet

kolla webbläsare

9 svar · 489 visningar · startad av nille99

nille99Medlem sedan aug. 2002352 inlägg
#1

jag har en funktion som bara fungerar i explorer

nu vill jag ha en if sats

if webbläsare = explorer then
funktion
end if

PalleMedlem sedan apr. 20003 174 inlägg
#2
[red]if (navigator.appName == "Microsoft Internet Explorer") {

     //function()

}[/red]
PepeJeriaMedlem sedan feb. 2003774 inlägg
#3

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!");
}
JojoxxMedlem sedan juni 20004 308 inlägg
#4

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();
}
Peter SMedlem sedan dec. 20025 483 inlägg
#5

Som bekant stödjer även Opera document.all, så PepeJerias kod är nog att föredra ;)

JojoxxMedlem sedan juni 20004 308 inlägg
#6

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.

CheguelinMedlem sedan juli 2003303 inlägg
#7

if (document.all && !window.opera)

Vad window.opera är har jag ingen aning om men det ska visst fungera :)

Peter SMedlem sedan dec. 20025 483 inlägg
#8

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...
}

;)

Nexus86Medlem sedan okt. 20023 030 inlägg
#9
<!--[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"

PepeJeriaMedlem sedan feb. 2003774 inlägg
#10

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

129 ms totalt · 3 externa anrop · v20260731065814-full.37765c92
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)