Wie man browser "Dokument-Modus"
Ich entwickle eine Art JavaScript-Bibliothek. Und ich bringe das problem, dass ich einige spezifische Fragen für:
Browser : IE8 /IE9 und Dokumentmodus : IE7
Ich habe die Lösung gefunden, aber ich will nicht, es zu benutzen in allen Situationen, und möchte es nur verwenden, wenn ich die oben beschriebene situation. Ich weiß, dass ich erkennen kann browser:
return navigator.userAgent.toLowerCase().indexOf('MSIE 8') > -1;
Aber ich erkenne nur-browser-version in einer solchen Art und Weise, aber nicht das Dokument-Modus, und ich will nicht meine Lösung, wenn ich, zum Beispiel, browser IE8-Modus und Dokument-Modus in Internet Explorer 8.
Gibt es einen Weg, um page-Dokument-Modus im IE? Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
document.documentMode
zurück genau das, was Dokument-Modus den IE nutzt.Bedeutung, dass, wenn Sie Ihre browser-Modus auf IE9, aber Ihre Dokumentmodus IE8-wird es wieder-Dokument.documentMode == 8, (während der userAgent-string wird immer noch als IE9). Dies ist besonders nützlich, wenn JS überhaupt umfasst styling ändert, wie es der Dokument-Modus, der bestimmt, wie IE eine Seite rendert, nicht den browser-Modus. Kompatibilität-Modus wirklich nur änderungen der Dokument-Modus (in der Regel zu IE7).
In den wenigen Fällen, die ich brauchte, um ich habe nur so etwas zu differenzieren IE:
Hoffe, das hilft einigen.
document.documentMode
wird nur unterstützt, IE8+, so müssen Sie zusätzliche feature-detection " wenn du brauchen target native-IE7-rendering.Ich weiß nicht, wie das abrufen der Dokument-Modus1, aber es kann klug sein, um das problem auf einfachere Weise. Lassen Sie uns sagen, Sie verwenden wollte
document.querySelector
in Ihrem scripting. Das würde nicht in IE8/Dokumentmodus IE7-Standards. So ist eine zusätzliche Kontrolle für die Existenz vondocument.querySelector
selbst wäre die Lösung:1 eine Möglichkeit Gefunden zu überprüfen, Dokument-Modus:
document.documentMode
. Es gibt eine ganze Zahl (also 7 für Dokumentmodus IE7-standards), 5 fürQuirks mode
. Es wirdundefined
für nicht IE-Browser.document.querySelector
funktioniert nicht in docmode IE7 ;). Jedenfalls fand hilfsbereit IE-document-Eigenschaft finden Sie in der Antwort aktualisiert.