Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-10-2008, 19:00   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2008
Ort: Bremen
Beiträge: 78
AJAX Fehler im IE

Hi leute,

ich habe auf meiner seite einen seltsamen Fehler. Im FF wird alles normal angezeigt mit samt den Animationen, im IE funktionieren die Animation auch, aber es wird der Inhalt nur noch für "Works" angezeigt.

Link zur Problempage: http://test.envo-media.de

Weiß jemand wo das Problem liegt bzw. kann mir jemand einen Hinweiß geben? Die Fehler Nachricht wird auch nicht ausgegeben.

Hier ist der AJAX-Code (habe ich zusammengebstelt von Tutorials und abgeändert, habe leider noch nicht soviel Ahnung von JS):

PHP-Code:
/*
Applikation: AJAX
Autor: Marco Bunge
Zustand: Stabil
Version: 1.4
Copyright: en.vo Media, Marco Bunge
*/

//funktionen zum steuern von AJAX();
function explode(delimiterstring){
    return 
string.split(delimiter);
}

function 
defineVar(getVararr){
    
    var 
arrAnz arr.length-1;
    
    for(var 
0;i<= arrAnz;i++){
        var 
expArr explode(':',arr[i]);
        
        if(
expArr[0] == getVar){
            var 
setVarVal expArr[1];
        }
    }
    
    return 
setVarVal;
}

//AJAX
function AJAX(){
    
//variablen werden deklariert    
    
var id defineVar('id',arguments);
    var 
file defineVar('url',arguments);
    var 
method defineVar('method',arguments);
    var 
asyncronString defineVar('asyncron',arguments);
    var 
opt defineVar('opt',arguments);
    
    if(
asyncronString == 'true'){
        
asyncron true;
    }else if(
asyncronString == 'false'){
        
asyncron false;
    }
    
    
//fehlernachricht    
    
var errormsg 'Es ist ein Fehler aufgetreten. Bitte informieren sie den Webmaster. <a href="mailto:webmaster@envo-media.de">webmaster@envo-media.de</a>';
    
    
//erstellen des requests
    
var req null;
    
    try{
        
req = new XMLHttpRequest();
    }
    catch (
ms){
        try{
            
req = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (
nonms){
            try{
                
req = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (
failed){
                
req null;
            }
        }  
    }
    
    if (
req == null)
          
//alert("Error creating request object!");
          
document.getElementById(id).innerHTML "0: "+errorMsg+"\n Status: "+req.status;
      
      
//anfrage erstellen (GET, url ist localhost,
      //request ist asynchron 
      
req.open("GET"filetrue);
    
    
//Beim abschliessen des request wird diese Funktion ausgeführt
    
req.onreadystatechange = function(){            
        switch(
req.readyState) {
                case 
4:
                if(
req.status!=200) {
                    
//alert("Fehler: "+req.status);
                    //1: 
                    
if(opt=="window"){
                        
alert("1: "+errorMsg+"\n Status: "+req.status);
                    }else{
                        
document.getElementById(id).innerHTML "1: "+errorMsg+"\n Status: "+req.status;
                    }
                    
                }else{    
                     
                    if(
opt=="window"){
                        
//es wird ein fenster ausgegeben
                        
alert(req.responseText);
                    }else{
                        
//schreibe die antwort in das Element mit der id
                        
document.getElementById(id).innerHTML req.responseText;
                    }
                }
                break;
        
                default:
                    return 
false;
                break;     
            }
        };
    
      
req.setRequestHeader("Content-Type",
                          
"application/x-www-form-urlencoded");
    
req.send(null);
}

//ausgabe als datei
function getFile(url,id){
    var 
setId "id:"+id;
    var 
setUrl "url:"+url;
    var 
setMethod "method:GET";
    var 
setAsyncron "asyncron:true";
    var 
setOpt 'off';
    
//alert("set: "+setId);
    
    
AJAX(setId,setUrl,setMethod,setAsyncron,setOpt);

Vielen Dank im Vorraus.

Edit:// Ich habe herausgefunden, das Text in Tags nicht ausgegeben wird.
Links zu den Seiten, die Angezeigt werden sollen:
http://test.envo-media.de/content/contact.html
http://test.envo-media.de/content/works.html
http://test.envo-media.de/content/info.html


MfG

Geändert von zombienoxx (07-10-2008 um 19:18 Uhr) Grund: ein Teil des Fehlers gefunden
zombienoxx ist offline   Mit Zitat antworten
Alt 07-10-2008, 19:25   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Machs mit einem Framework: http://docs.jquery.com/Ajax/jQuery.g...tacallbacktype

Einmal etwas eingearbeitet nimmt dir das die ganze Arbeit ab
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 07-10-2008, 19:41   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2008
Ort: Bremen
Beiträge: 78
Danke, ich werde es mal einarbeiten.

Liegt es am Script, dass die Dateien nicht (richtig) angezeigt werden?

MfG
zombienoxx ist offline   Mit Zitat antworten
Alt 07-10-2008, 22:49   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2008
Ort: Bremen
Beiträge: 78
Hi, ich habe jetzt herausgefunden, dass die Ausgabe an innerHTML scheitert, weil IE abricht sobald ein "<" im Text ist.

Nun habe ich was über DOM und nodes gelesen, wurde daraus aber nicht schlau. Gibt es eine alternative zu innerHTML, bzw kann man innerHTML simulieren?

In innerHTML soll eine Datei eingebunden werden und in einem P-tag ausgegeben:

Hier wird der inhalt ausgegeben.
Code:
<div class="content" id="Information" style="display:none;">
  <p style="margin:10px;" id="infoOutput"></p>
</div>
<div class="content" id="Works" style="display:none;">
  <p style="margin:10px;" id="worksOutput"></p>
</div>
<div class="content" id="Contact" style="display:none;">
  <p style="margin:10px;" id="contactOutput"></p>
</div>
MfG

Geändert von zombienoxx (07-10-2008 um 22:55 Uhr)
zombienoxx ist offline   Mit Zitat antworten
Alt 08-10-2008, 14:01   #5 (permalink)
∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇
 
Benutzerbild von boreker
 
Registriert seit: Apr 2002
Ort: inphobie
Beiträge: 2.316
alternative zu innerHTML waere vielleicht document.write
http://de.selfhtml.org/navigation/su...hanfrage=write

ob dich das weiterbringt weiss ich nicht.

vielleicht hilft auch die funktion excape()
http://de.selfhtml.org/navigation/su...hanfrage=write
aber ich glaube damit werden deine htmltags dann als text dargestellt.

viel glueck, boreker

ps: der hat das gleiche problem ohne lösung:
http://www.ajax-community.de/sonstig...setext-ie.html
__________________
no comment...
boreker ist offline   Mit Zitat antworten
Alt 16-10-2008, 22:02   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2008
Ort: Bremen
Beiträge: 78
Hi,

ich habe das Problem gelößt indem ich die AJAX Methode von jQuery eingebunden habe. innerHTML war mir zu instabil in Verbindung mit dem IE.

document.write habe auch ausprobiert, aber dank jQuery ist das überflüssig geworden.

Vielen Dank
MfG
zombienoxx ist offline   Mit Zitat antworten
Alt 16-10-2008, 22:23   #7 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Hab dir extra keine Antwort mehr geschrieben da ich diese ( JQuery) bereits gegeben hatte. Schön dass du doch noch auf den Pfad des Lichts gefunden hast.
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele