Zurück   Flashforum > Software > Web-Editoren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-09-2007, 13:07   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 7
Problem mit Spry / xml im IE

Hallo,
habe mir vor kurzem die neue Video2Brain Dreamweaver CS3 Profi Schulung gekauft und die vorgestellten Projekte einmal nachgebaut und auf eigene Übungsaufgaben übertragen.

Jetzt zu meinem Problem:
ich habe über die Spry-Optionen eine xml Datensatz angebunden um eine Referenzliste inkl. Bilder zu steuern bzw. zu ersetzen.
Das funktioniert auch alles wunderbar im Firefox aber im Internet Explorer bekomme ich folgende Fehlermeldung:

Exception caught while loading xml/referenzen.xml: [object Error]

Ich muß noch dazusagen das ich die Sache bis jetzt nur lokal getestet habe. Könnte es daran liegen? Aber warum geht es dann im Firefox?

Erst dachte ich ich hätte irgendwo im Code einen Fehler aber die mitgelieferten Projekte auf der Schulungs-DVD funktionieren ebenfalls im IE nicht.
Also muß es ja am IE liegen, oder???

Ich bin mit meinem Latein am Ende - hoffe hier kann mir jemand helfen
Felix1234 ist offline   Mit Zitat antworten
Alt 27-09-2007, 13:29   #2 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Servus,

selbes Problem auch gehabt. Ja, das liegt am lokalen Betrieb. Denn bei lokalem Betrieb übergibt der IE kein XML, sondern lediglich den reinen responseText. Also musst du dir den Text vornehmen, der ja im Endeffekt die XML-Struktur wiederspiegelt. Beseitigen kannst du das folgendermaßen (ist jetzt aber nicht SPRY):
Code:
// meine onSuccess-Funktion
function fbLoadNavi(txt,xml) {
  ...

  // das brauchst du für den IE
  if (window.ActiveXObject) {
    var toAppend = document.createElement('xml');
    // packe den responseText in das innerHTML
    toAppend.setAttribute('innerHTML',txt);
    // damit man es wiederfindet, eine eindeutige ID
    toAppend.setAttribute('id','_uniqueID');
    // hängt das ganze irgendwo rein
    document.body.appendChild(toAppend);
    // suche den XML Zweig anhand der ID und schreib ihn in xml
    xml = document.getElementById('_uniqueID');
    // abschließend kann man das Tag auch wieder entfernen
    document.body.removeChild(document.getElementById('_uniqueID'));
  }

  for(i = 0; i < xml.getElementsByTagName('xxx').length; i++) {
    ... // jetzt kannst du halt drauf zugreifen, das 'xxx' entspricht halt deinem XML-Tag
  }
}
Ist jetzt nur ein Beispiel, aber so funktionierts auch im IE. Ich find grad den Link nicht, wo ich drauf gestoßen bin.

Geändert von richtsteiger (27-09-2007 um 13:31 Uhr)
richtsteiger ist offline   Mit Zitat antworten
Alt 27-09-2007, 14:12   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 7
vielen Dank für die schnelle Antwort.

Aber ich komm da nicht so recht mit (ist das erste mal das ich was mit xml mache)

ich habe den Code in den head meiner Site kopiert, weiß jetzt aber nicht was ich wie ändern muß

function fbLoadNavi(txt,xml) {
...

// das brauchst du für den IE
if (window.ActiveXObject) {
var toAppend = document.createElement('xml');
// packe den responseText in das innerHTML
toAppend.setAttribute('innerHTML',txt);
// damit man es wiederfindet, eine eindeutige ID
toAppend.setAttribute('id','_uniqueID');
// hängt das ganze irgendwo rein
document.body.appendChild(toAppend);
// suche den XML Zweig anhand der ID und schreib ihn in xml
xml = document.getElementById('_uniqueID');
// abschließend kann man das Tag auch wieder entfernen
document.body.removeChild(document.getElementById( '_uniqueID'));
}

for(i = 0; i < xml.getElementsByTagName('xml/referenzen.xml').length; i++) {
... // jetzt kannst du halt drauf zugreifen, das 'xxx' entspricht halt deinem XML-Tag
}
}

Gruß Felix
Felix1234 ist offline   Mit Zitat antworten
Alt 28-09-2007, 07:59   #4 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Zitat:
Zitat von Felix1234 Beitrag anzeigen
ich habe den Code in den head meiner Site kopiert, weiß jetzt aber nicht was ich wie ändern muß
Von kopieren war aber nicht die Rede und wenn schon, dann nicht in den head der Seite. Das SPRY-Framework hat wie andere Frameworks auch eine Funktion, die bei erfolgreichem Aufruf der Datenquelle aufgerufen wird. Wie die genau heißt, kann ich dir zwar nicht sagen, dass müsste aber einfach herauszufinden sein, indem du mal in den js-Files nach onSuccess suchst. Und dann musst du halt in die Funktion, an die neben dem responseXML auch der responseText übergeben wird, die kleinen Zeilen einbauen. Dann funktionierts auch mit dem lokalen Betrieb. Wobei lokal bedeutet, dass kein Webserver läuft.

Also wenn du nur üben willst bzw. deine Anwendung irgendwann sowieso auf 'nem Server läuft, dann arbeite beim Testen mit dem Firefox. Dann brauchst du dir auch nicht die Umstände machen, denn im lokalen Betrieb kann es auch noch das Problem geben, das beim IE der Status des XMLHttpRequest-Objektes trotz erfolgreichem Request falsch vorliegt, aber das würde hier zu weit gehen. Obwohl, das wäre auch mal ein Argument, sich intensiver mit der Funktionsweise von Ajax vertraut zu machen.
richtsteiger 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 19:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele