2010-11-30 8 views

Antwort

6

Was funktioniert nicht? Ist das ein Fehler in FF? Wie wäre es

var hasAX = "ActiveXObject" in window;
+0

Nein, ich bekomme falsch in Firefox und Chrom von diesem. siehe http://jsfiddle.net/qXSvQ/2/ –

+4

@ twesh Es ** sollte ** in Firefox und Chrome unwahr zurückgeben; FireFox und Chrome unterstützen ActiveX nicht. Sie führen Code aus, um festzustellen, ob FireFox oder Chrome ActiveX unterstützt. Da weder FireFox noch Chrome ActiveX unterstützt, sollte die Funktion "false" zurückgeben. Wenn der eigentliche Code in FireFox und Chrome getestet wird, wird "false" zurückgegeben. Fehlt der Antwort etwas? –

7

Im Folgenden Code sollte funktionieren, es arbeitet an IE6 & FF 3.6.12 atleast.

if(typeof(window.ActiveXObject)=="undefined"){ 
    alert("ActiveX Object not supported"); 
}else { 
    alert("ActiveX Object supported"); 
} 
+0

funktioniert es in 'IE', aber in Firefox ist es undefiniert. Ich habe mit 'FF 3.6.12' und' FF 4.0b7' nachgesehen. –

+0

@twesh, undefined ist in Ordnung, das ist ActiveX wird nicht in FF unterstützt. Auch im obigen Code habe ich es nur mit "undefined" verglichen. –

+0

so irgendwelche Problemumgehungen, um zu überprüfen, ob ActiveX im FF-Browser aktiviert ist? –

23

ActiveX-Objekte existieren in keinem anderen als dem Internet Explorer. Wenn Sie versuchen, sie für XMLHTTPRequests zu verwenden, verwenden Sie stattdessen das XMLHTTPRequest() - Objekt, das Feature-Erkennung verwendet.

if ("ActiveXObject" in window) { /* Do ActiveX Stuff */ } 
else { /* ActiveX doesnt exist, use something else */ } 
+0

Dies funktioniert gut in IE11 und Chrome, im Gegensatz zu window.ActiveXObject (die immer "undefined" zurückgibt) – Drkawashima