Hi,
if(browser == "Microsoft Internet Explorer"){
Sollte man so nicht machen. Der IE7 hat z.B. XMLHttpRequest() auch als natives Objekt (wie z.B. der Mozilla ohnehin) und braucht den Zugriff via ActiveX gar nicht mehr.
Funktioniert das ganze im IE noch wenn man ActiveX deaktiviert hat?
Nein. Schreibe es so:
var result=null;
if(window.XMLHttpRequest) {
// Standard
result=new XMLHttpRequest();
} else if(window.ActiveXObject) {
// IE<7
try { result=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { result=false; }
} else if(window.createRequest) {
// IceBrowser
result=window.createRequest();
}
Im Ergebnis ist result dann
1. im Erfolgsfall das Request-Objekt,
2. null, wenn der Browser XMLHttpRequest gar nicht unterstützt, oder
3. false, wenn der Browser (sprich: IE<7) XHR zwar prinzipiell unterstützt, aber ActiveX abgeschaltet ist/der User die Aktion nicht erlaubt hat (Du könntest dann den User ggf. bitten, ActiveX zu aktivieren, bzw. den Zugriff zu erlauben).
Kurz gesagt: if(result) -> OK
if(!result) -> KO, was man noch unterteilen kann in:
if(result===null) -> chancenlos
if(result===false) -> ggf. neuer Versuch
Beachte: Der IceBrowser beherrscht nur einen Auszug der XHR-Methoden/Eigenschaften. Wenn Du ihn nicht explizit unterstützen möchtest, lösche also diesen If-Zweig ...
Gruß, Cybaer
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!