IE7 Problem - getElementByTagName/Xml/Array?
Hundi
- javascript
Ich habe mir eine kleine Func gebaut die mir XML Daten auslesen kann:
function _read_xml( xml ) {
if ( xml ) {
var arr = xml.split( "." )
var str = document
for ( i=0; i<arr.length; i++ ) {
str = str.getElementsByTagName( arr[ 1 ] )[ 0 ]
}
str = str.firstChild.data
return str
}
}
Der IE (mit 7er getestet) hat jedoch Probleme mit der Zeile str = str.getElementsByTagName( arr[ 1 ] )[ 0 ]
Laut dem was ich gelesen habe sollte der IE7 das aber eig können.
Übergeben wird sowas wie: "de.error.java_error"
Mahlzeit Hundi,
ich versuche mal, Javascript-Parser zu spielen:
function _read_xml( xml ) {
(Angenommen, die Funktion wird wirklich mit einem String "de.error.java_error" als Parameter aufgerufen)
if ( xml ) {
Jo, eine Variable namens "xml" existiert und liefert auch nicht undefined zurück. Also rein in die Bedingung ...
var arr = xml.split( "." )
Momeeent, da sind doch Punkte in dem String - ich generiere also mal ein Array('de', 'error', 'java_error') ...
var str = document
Alles klar, ich lege eine Kopie des Objekts namens "document" in der lokalen Variablen namens "str" ab ...
for ( i=0; i<arr.length; i++ ) {
Auf geht's: eine Schleife mit der globalen Variable i als Zähler, wir fangen bei 0 an und gehen bist zur Anzahl der im Array "arr" enthaltenen Elemente ...
str = str.getElementsByTagName( arr[ 1 ] )[ 0 ]
Beim 1. Durchlauf: Ich hole mir das erste Element mit dem Tagnamen "error", das sich innerhalb des Dokuments befinden und speichere den Wert n der Variablen "str" ... Huch?! Ein Element <error> gibt's in HTML doch gar nicht?!
(selbst wenn kein Fehler aufgetreten wäre:)
Beim 2. Durchlauf: Ich hole ... Huch?! In der Variablen "str" befindet sich ja ein String - der hat doch gar keine Methode getElementsByTagName()?!
...
Der IE (mit 7er getestet) hat jedoch Probleme mit der Zeile [code lang=javascript]str = str.getElementsByTagName( arr[ 1 ] )[ 0 ]
Kein Wunder.
> Laut dem was ich gelesen habe sollte der IE7 das aber eig können.
Das bezweifle ich doch sehr.
MfG,
EKKi
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Hmm ich hab doch grade schonmal geschrieben warum ist die Nachricht weg ?:/
Na jedenfalls mit dem String.. wenn du das in der Art meinst: document."error".usw, dann wüsst ich gern wie man das behebt^^
Der FF kann das wohlgemerkt aber.
Das es das Element in Html nicht gibt ( <error> ) stört den FF ebensowenig.. aber da die Funktion getElementByTagName() doch eig für XML gedacht ist sollte die doch auch solche Tags auslesen können :-O
P.S.: Das:
str = str.getElementsByTagName( arr[ 1 ] )[ 0 ]
Sollte das heißen:
str = str.getElementsByTagName( arr[ i ] )[ 0 ]
Hi,
lies bitte noch mal nach, was EKKi bzgl. der Variablen str schrieb.
MfG ChrisB
Das sich in der Var str ein String befindet? Sprichst du darauf an?
Das hilft mir leider nicht weiter
Mahlzeit Hundi,
Das sich in der Var str ein String befindet? Sprichst du darauf an?
Vermutlich wollte er das.
Das hilft mir leider nicht weiter
Das liegt vermutlich daran, dass Dir eine Menge Grundlagenwissen in Bezug auf http://de.selfhtml.org/javascript/objekte/string.htm@title=String-Objekte und die Methode http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name@title=getElementsByTagName() fehlt. Hole das nach und versuche erneut, meine Anmerkungen zu verstehen. Wenn Du konkrete Fragen dazu hast, kannst Du sie gern stellen.
MfG,
EKKi
Da habe ich nicht die Zeit zu.. Na dann werd ich den IE aussen vor lassen und weiter den FF nutzen
Mahlzeit Hundi,
Da habe ich nicht die Zeit zu.
Dann bist Du hier falsch:
Na dann werd ich den IE aussen vor lassen und weiter den FF nutzen
Das ist prinzipiell IMHO die richtige Entscheidung und im konkreten Fall auch einfach umsetzbar - aber was machst Du, wenn Du mal auf ein *wirkliches* Problem stößt und Du dann wieder bzw. immer noch keine Lust hast, damit ernsthaft zu beschäftigen?
MfG,
EKKi