Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-11-2008, 19:43   #1 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
JQuery: each() funktioniert im IE nicht

Code:
$(d).find('route').each( function(i){
     //[]
});
d ist ein ein XML-Dokument. Dort drin soll JQuery Tags mit dem Namen "route" suchen und jedes durchlaufen. Funktioniert auch soweit, nur der IE will nicht. Jemand nen Lösungsvorschlag?
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 11-11-2008, 21:47   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Bei mir läufts in allen Browsern (IE5.5+)
xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<root>
	<section>
		<route value="thud"/>
		<route value="wooz"/>
		<route value="foo"/>
		<route value="bar"/>
		<route value="bla"/>
	</section>
</root>
js:
Code:
$(xml).find('route').each(function(index,node){ 
  alert(node.getAttribute('value'));
});
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 11-11-2008, 22:01   #3 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
poste pls mal deinen kompletten Testcode, meiner geht nämlich immer noch nicht:

HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<script src="http://code.jquery.com/jquery-latest.js"></script>
		<script type="text/javascript">	
			//<![CDATA[
			
			$(document).ready( function(){
				
				$.get("routen.xml", function(d){
		
  					$(d).find('test').each( function(i){
	  					
	  					$('#container').append( $(this).text()+"<br />" );
	  					
  					});
				
				});
				
			});
			
			//]]>	
		</script>
	</head>
	<body>
	
	<div id="container">
	
		
		
	</div>
	
	</body>
</html>
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>

<tests>

	<test id="35">

			<sub_test>132245</sub_test>

	</test>

	<test id="275">

			<sub_test>128234</sub_test>

	</test>

	<test id="276">

			<sub_test>127744</sub_test>

	</test>

</tests>
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 11-11-2008, 22:17   #4 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Wenns hilft.
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>parse xml</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        $.get("routen.xml", function(transport){
            $(transport).find('test').each(function(index,node){ 
              alert(node.getAttribute('id'));
            })
         });
      });
    </script>
  </head>
  <body>
  </body>
</html>
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (11-11-2008 um 22:18 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 11-11-2008, 22:23   #5 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Deine Variante funkt bei mir auch. Ich nutze den IETester dazu.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::

Geändert von psyk (11-11-2008 um 22:29 Uhr)
psyk ist offline   Mit Zitat antworten
Alt 11-11-2008, 22:50   #6 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Während deine Variante bei mir wiederum auch nicht funktioniert... sehr seltsam

PS: IE8beta, hab aber auch von andern gehört dass das bei ihnen nter IE7 nicht funktioniert
__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (11-11-2008 um 22:53 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 11-11-2008, 23:02   #7 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Seitdem ich IE8beta installiert habe, traue den verschiedenen IE's beim
Debugging nicht mehr alt zu sehr.

Das schreit nach einer zweiten Meinung.
Soll heißen, vielleicht kann das ja mal noch jemand anders testen, auf
eine IE8 freien Rechner.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 12-11-2008, 09:47   #8 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Also bei mir geht's im IE auch nicht. Testet ihr etwa offline? Denn da gibt's
Probleme im IE. Hatte ich schon mal: Problem mit Spry / xml im IE

Wenn ich nun den Workaround in Nightflyer's Beispiel einbaue, dann
funktioniert's auch im IE. Bedarf vielleicht noch etwas Feintuning, aber es geht:
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <script src="http://code.jquery.com/jquery-latest.js">
    </script>
    <script type="text/javascript">
      //<![CDATA[
      $(document).ready(function(){
        $.get("routen.xml", function(d){
          // das brauchst du für den IE
          if (window.ActiveXObject) {
            var toAppend = document.createElement('xml');
            // packe den responseText in das innerHTML
            toAppend.setAttribute('innerHTML', d);
            // 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 d
            d = document.getElementById('_uniqueID');
            // abschließend kann man das Tag auch wieder entfernen
            document.body.removeChild(document.getElementById('_uniqueID'));
          }

          $(d).find('test').each(function(i){
            $('#container').append($(this).text() + "<br />");
          });
        });
      });
      //]]>	
    </script>
  </head>
  <body>
    <div id="container">
    </div>
  </body>
</html>
__________________
XING

Geändert von richtsteiger (12-11-2008 um 10:01 Uhr) Grund: Ach sorry, Link war unvollständig
richtsteiger ist offline   Mit Zitat antworten
Alt 12-11-2008, 10:01   #9 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Das komische ist dass es in einer Test-Version funktioniert (obwohl syntaktisch gleich), in der Version in der es aber dann schliesslich funktionieren soll eben nicht. Werde heute abend mal Step-By-Step debuggen um zu schauen ob ich die Fehlerquelle finde.
__________________
(\__/)
(='.'=)
(")_(")

Geändert von Nightflyer (12-11-2008 um 10:03 Uhr)
Nightflyer ist offline   Mit Zitat antworten
Alt 12-11-2008, 10:07   #10 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Wie ich schon sagte, wenn die nicht funktionierende Geschichte ausschließlich
offline unterwegs ist, dann geht's nicht im IE. Online, also wenn die HTML und
die XML auf 'nem Webserver liegen, dann geht's halt. Offline brauchst du eben
den Workaround.
__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 12-11-2008, 13:06   #11 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Beide Versionen sind online.
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 12-11-2008, 14:20   #12 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Kann man sich vielleicht die nicht funktionierende Version ma anschauen?
__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 12-11-2008, 17:14   #13 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Kann man, ist allerdings erschwert. http://test.sayphillion.de dann dort anmelden und einloggen. Der Bug tritt in der ansicht Galaxie auf wenn eine Flottenroute gelegt werden soll (klick auf aktuellen Sektor, Routenaktion wählen, auf Zielsektor klicken und nochmals mit klick bestätigen). Die Route sollte dann gelistet werden:
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 12-11-2008, 22:48   #14 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Nun, nach stundenlangen Tests kann ich folgendes sagen: Dort wo es funktionieren soll, in genau dem Ordner, funktioniert es nicht. Sonst funktioniert es überall. Irgendjemand einen Vorschlag warum eine Funktion vom Verzeichnis abhängig sein könnte?

http://test.sayphillion.de/bg/test.html <-- geht nicht
http://test.sayphillion.de/bg/themes/default/test.html <-- geht, obwohl nur Pfade geändert
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 13-11-2008, 08:21   #15 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Hm, keine Ahnung, leider.

Hast du's mal mit meinem Vorschlag versucht? Vielleicht liefert dir ja in dem Fall,
wo's nicht funktioniert, der IE aus unerfindlichen Gründen beim XMLHttpRequest
eben nur 'nen responseText aus und kein responseXML. Das kannst du prüfen,
indem du dir im IE einfach mal die Daten per alert anzeigen lässt:
HTML-Code:
...
$.get("routen.xml", function(d) {
  alert(d);
  ...
}
...
In allen Beispielen, wo im IE bei mir keine Ausgabe kommt, zeigt mir das alert
jedoch die richtige XML-Struktur an. Und wenn ich dann den schon erwähnten
Workaround anwende, dann funktioniert's bei mir auch. Zumindest bei den
Beispielen und meinen Problemchen.

Ansonsten sorry. Auf alle Fälle ganz dolle Daumen drück.
__________________
XING
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 12:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele