2010-11-30 15 views

Répondre

6

Qu'est-ce qui ne fonctionne pas? Est-ce que lancer une erreur dans FF? Que diriez-vous

var hasAX = "ActiveXObject" in window;
+0

non, je deviens faux dans firefox et chrome à partir de cela. voir http://jsfiddle.net/qXSvQ/2/ –

+4

@twesh It ** devrait ** retourner false dans Firefox et Chrome; ni FireFox ni Chrome ne supportent ActiveX. Vous exécutez du code pour déterminer si FireFox ou Chrome prend en charge ActiveX. Puisque ni FireFox ni Chrome ne supportent ActiveX, la fonction devrait renvoyer 'false'. En testant le code réel dans FireFox et Chrome, il renvoie correctement "false". Y a-t-il quelque chose qui manque à la réponse? –

7

Ci-dessous le code devrait fonctionner, il travaille sur IE6 & FF 3.6.12 atleast.

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

fonctionne bien dans 'IE', mais dans Firefox il est indéfini. J'ai vérifié avec 'FF 3.6.12' et' FF 4.0b7'. –

+0

@twesh, undefined est bien que ActiveX n'est pas pris en charge dans FF. Même dans le code ci-dessus, je l'ai comparé avec "non défini" seulement. –

+0

donc des solutions de contournement pour vérifier si ActiveX est activé dans le navigateur FF? –

23

Les objets ActiveX n'existent pas dans Internet Explorer. Si vous essayez de les utiliser pour XMLHTTPRequests, utilisez l'objet XMLHTTPRequest() à la place, en utilisant la détection de fonctionnalité.

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

Cela fonctionne très bien dans IE11 et Chrome, contrairement à window.ActiveXObject (qui renvoie toujours "undefined") – Drkawashima