2010-06-22 3 views
6

Gibt es irgendeine Methode, um von Javascript zu unterscheiden, wenn der Browser "erweiterte Sicherheitskonfiguration" aktiviert hat?Ist es möglich, die verstärkte Sicherheitskonfiguration von Internet Explorer in JavaScript zu erkennen?

Ich habe immer wieder Probleme mit bestimmten Steuerelementen, die nicht in dynamisch geladenen Inhalten funktionieren. Dies geschieht nur mit Browsern, die auf Windows Server 2003/2008-Systemen ausgeführt werden - auch wenn ich den Server der "vertrauenswürdigen" Zone hinzufüge.

Vielleicht hat jemand bereits eine Methode entwickelt, um diese Aufgabe zu erfüllen?

Vielen Dank im Voraus

Antwort

0

ich glaube, Sie für SV1 im user agent string aussehen kann.

+0

Leider funktioniert das nicht. Laut Microsoft: http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx die Zeichenfolge "SV1" wird nur von Internet Explorer 6 verwendet. Ein schneller Test auf ein paar Maschinen scheinen das zu bestätigen. –

1

Ich glaube nicht, dass es möglich ist, und wenn es immer noch ist, dann ist das ein Fehler, der früher oder später behoben werden könnte.

Einer der Hauptpunkte dieser "Extra-Sicherheit" war, dass der Client sie hatte, aber nicht von den Servern erkannt wurde, so dass sie nicht wissen konnten, wann sie versuchen sollten, sie zu umgehen.

+0

Ich denke, Sie können zumindest die Symptome (Skripts/ActiveX deaktiviert), mindestens * nach * der ersten Anfrage leicht erkennen. Ich denke nicht, dass das ein Fehler ist. –

1

Ist JavaScript bei Verwendung der erweiterten Sicherheitskonfiguration nicht deaktiviert?

Wenn Sie nur eine Nachricht an den Benutzer anzeigen möchten, zeigen Sie einfach eine Nachricht in normalem HTML an und verstecken Sie sie mit Javascript, damit nur Benutzer ohne Javascript sie sehen können. Wenn Sie auf der Serverseite damit umgehen müssen (z. B. eine abweichende Version Ihrer Website auszugeben), fügen Sie einfach Javascript hinzu, um Benutzer auf Ihre Javascript-fähige Version umzuleiten. Benutzer ohne Javascript bleiben auf der Nicht-js-Seite.

Wenn nur skript activex deaktiviert ist, gilt das gleiche Verfahren, legen Sie einfach eine activeX und versucht, „Skript“ es, wenn es Ihnen nicht umleiten können, zeigt eine Nachricht usw.

Die oben natürlich doesn‘ Ich erkenne die erweiterte Sicherheitskonfiguration an sich, aber die Symptome, die bei Aktivierung auftreten. Es könnte also wahrscheinlich nicht zwischen Benutzern mit erweiterter Sicherheitskonfiguration und Benutzern, die JS/ActiveX einfach deaktiviert haben, oder einem Browser, der überhaupt kein Scripting unterstützt, unterscheiden.

1

Anstatt für IE ESC direkt zu testen, können wir auf seine Auswirkungen testen.

Ich fand, dass mit ESC aktiviert die onclick Ereignisse von dynamisch hinzugefügtem Inhalt nicht ausgelöst werden. Also teste ich diese Ereignisse direkt.

var IEESCEnabled = true; 
 
var testButton = $("<button style=\"display: none;\" onclick=\"IEESCEnabled = false; alert('No problems here.');\">Test IE ESC</button>"); 
 
testButton.click(); 
 
if (IEESCEnabled) { 
 
    alert("We have a problem."); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

In meiner Anwendung ein Test wie dieser leitet den Benutzer auf eine Seite ihrer Ausgabe zu erklären. Es wird von einem Noscript-Element begleitet, um zu überprüfen, ob JavaScript überhaupt ausgeführt wird.

Verwandte Themen