Etwas tun, wenn web-browser ist IE, in JavaScript
Wo lege ich das script in mein HTML-Code für Sie zu arbeiten? Und welche änderungen muss ich vornehmen?
<script type="text/javascript">
var browser=navigator.appName;
if(browser="Microsoft Internet Explorer")
{
document.getElementById("html").innerHTML="\
<body><p>Your browser is IE.</p></body>";
}
</script>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte ich ein etwas alternativer Vorschlag, das überspringen der spoofable UA-string, und ein von Microsoft umgesetzt (und standardkonforme) Strategie:
Diese zu verwenden, legen Sie es in den
head
des Dokuments. Ich glaube nicht, dass es platziert werden kann innen script-tags (da es basiert auf html-Kommentar-syntax, kein JavaScript).Diese verwendet conditional comments (Quirksmode.org link).
meta
element (oder was auch immer), aber es bleibt ein "hack" auf der Grundlage, dass es mit dem Kommentar zu tun, etwas, das Sie wurden nie entwickelt, zu tun. So, sechs ein, halbes Dutzend des anderen.Wenn überhaupt möglich, würde ich vorschlagen, die Vermeidung von direkten browser-Erkennung.
Fast jedem Fall, wo jemand will, um zu erkennen, die von einem bestimmten browser (meist IE), ist es, weil es ein bestimmtes feature, das Sie verwenden möchten, die nicht verfügbar im browser, oder hat bugs.
Aber browser-Erkennung schlägt fehl, als eine Strategie, die hier für eine Reihe von Gründen:
Also, was sollten Sie tun, anstatt der browser-Erkennung?
Erkennen die Funktion. Es gibt eine Reihe von Möglichkeiten, dies zu tun, aber die beste Lösung die ich kenne ist ein Skript namens Modernizr. Platzieren Sie dieses script in Ihre Website, und Ihre Seite erhält eine Reihe von CSS-Klassen und Javascript-Eigenschaften die Sie verwenden können, um festzustellen, ob eine bestimmte Funktion verfügbar ist oder nicht.
Zum Beispiel, wenn Sie möchten, verwenden Sie Verläufe auf Ihrer Website, werden die meisten Browser können CSS verwenden, dafür aber IE und älteren Versionen von anderen Browsern nicht. Für diese Browser, die Sie leicht verwenden können, ein hintergrund-Bild statt. Modernizr wird Ihnen eine CSS-Klasse entweder
cssgradients
oderno-cssgradients
, und Sie können den Stil dieser beiden Klassen entsprechend.Fügen Sie die fehlenden Funktionen in den browser. Dies ist schwierig, aber für bestimmte features, die es getan werden kann, besonders für den IE. Ein gutes Beispiel ist CSS3Pie das ist ein hack, mit dem IE mit der CSS -
border-radius
feature (und ein oder zwei anderen Funktionen auch) die in allen anderen Browsern. Es gibt ganze Reihe von anderen kleinen scripts wie diese können zur Verbesserung der Funktionalität des IE.Benutzen Sie eine Bibliothek wie JQuery was bedeutet all dies für Sie arbeiten. Mit JQuery, können Sie sich ziemlich sicher, dass die meisten von Ihren Javascript-code ist zur Arbeit zu gehen in allen Browsern.
Wenn Sie muss Verwendung browser-detection zu sagen, wenn der Benutzer wird mit IE (und ich akzeptiere, dass es gibt einige Gelegenheiten, wenn es notwendig ist), dann verwenden Sie bedingte Kommentare pro @David Thomas beantworten. Aber nicht so, sparsam, nach Berücksichtigung aller anderen Möglichkeiten um ihn herum.
== für den Vergleich, = für die Zuordnung
Legen Sie es in die head-tags.