Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
Hein Forumsteilnehmer
Anmeldungsdatum: 14.08.2006 Beiträge: 10
|
Verfasst am: 24.08.2006 11:26:52 Titel: Wo sind die JAVASCRIPT-Spezialisten ? |
|
|
Hallo,
nochmals meine Frage nach einem Fehler im JavaScript-Code!
Code: |
<DIV ID="OutFrage" STYLE="position:absolute; top:60px; left:0px; visibility:visible">
<SCRIPT LANGUAGE="JavaScript">
<!--
var res = new String();
var resFrage = new String();
var FrageTab = new Object();
if(start != null)
{
switch (call)
{
case "?sbfb": FrageTab = document.getElementById('FragenSBFB'); break; // Objektzeiger
case "?sbfs": FrageTab = document.getElementById('FragenSBFS'); break; // Objektzeiger
case "?sks": FrageTab = document.getElementById('FragenSKS'); break; // Objektzeiger
case "?ubi": FrageTab = document.getElementById('FragenUBI'); break; // Objektzeiger
case "?src": FrageTab = document.getElementById('FragenSRC'); break; // Objektzeiger
case "?skn": FrageTab = document.getElementById('FragenSKN'); break; // Objektzeiger
}
// childNodes(Objektzeiger)
var nummer, punkte, bogen, grafik, frage;
nummer = FrageTab.documentElement.childNodes(start).childNodes(0);
punkte = FrageTab.documentElement.childNodes(start).childNodes(1);
bogen = FrageTab.documentElement.childNodes(start).childNodes(2);
grafik = FrageTab.documentElement.childNodes(start).childNodes(3);
frage = FrageTab.documentElement.childNodes(start).childNodes(4);
resFrage += '<TABLE BORDER="0" WIDTH="300" CELLSPACING="5" CELLPADDING="0">';
resFrage += '<TR>';
resFrage += '<TD WIDTH="48">'+ nummer.text +'</TD>';
resFrage += '<TD WIDTH="52">'+ punkte.text +'</TD>';
resFrage += '<TD WIDTH="160">'+ bogen.text +'</TD>';
resFrage += '</TR>';
resFrage += '</TABLE>';
resFrage += '<TABLE BORDER="0" WIDTH="300" CELLSPACING="5" CELLPADDING="0">';
resFrage += '<TR>';
resFrage += '<TD WIDTH="300" HEIGHT="80" VALIGN="top">'+ frage.text +'</TD>';
resFrage += '</TR>';
resFrage += '</TABLE>';
if(grafik.text == "")
{
parent.dd.elements.trainerGrafik.swapImage('transparentpixel.gif');
}
else
{
parent.dd.elements.trainerGrafik.swapImage(grafik.text);
parent.dd.elements.trainerGrafik.setOpacity(0.8);
parent.dd.elements.trainerGrafik.show();
}
document.open();
document.write(resFrage);
document.close();
}
//-->
</SCRIPT>
</DIV>
<DIV ID="Fest" STYLE="position:absolute; top:205px; left:0px; visibility:visible">
<TABLE BORDER="0" WIDTH="300" CELLSPACING="5" CELLPADDING="0">
<TR>
<TD><HR SIZE="0" WIDTH="290" COLOR="#00005d" noshade></HR></TD>
</TR>
<TR>
<TD ALIGN="center"><A HREF="JavaScript:showAntwort()" onMouseOver="javascript:showImage('0','button1', 'b')" onMouseOut="javascript:showImage('0','button1', 'a')"><IMG SRC="../images/bZeigenOff.gif" WIDTH="90" HEIGHT="23" BORDER="0"></A></TD>
</TR>
<TR>
<TD><HR SIZE="1" WIDTH="290" COLOR="#00005d" noshade></HR></TD>
</TR>
</TABLE>
</DIV>
<DIV ID="OutAntwort" STYLE="position:absolute; top:270px; left:0px; visibility:hidden">
<SCRIPT LANGUAGE="JavaScript">
<!--
resAntwort = new String();
if(start != null)
{
switch (call)
{
case "?sbfb": var FrageTab = document.getElementById('FragenSBFB'); break; // Objektzeiger
case "?sbfs": var FrageTab = document.getElementById('FragenSBFS'); break; // Objektzeiger
case "?sks": var FrageTab = document.getElementById('FragenSKS'); break; // Objektzeiger
case "?ubi": var FrageTab = document.getElementById('FragenUBI'); break; // Objektzeiger
case "?src": var FrageTab = document.getElementById('FragenSRC'); break; // Objektzeiger
case "?skn": var FrageTab = document.getElementById('FragenSKN'); break; // Objektzeiger
}
// childNodes(Objektzeiger)
var antwort;
antwort = FrageTab.documentElement.childNodes(start).childNodes(5);
resAntwort += '<TABLE BORDER="0" WIDTH="300" CELLSPACING="5" CELLPADDING="0"><TR>';
resAntwort += '<TD HEIGHT="100" VALIGN="top">' + antwort.text + '</TD></TR>';
resAntwort += '</TABLE>';
document.open();
document.writeln(resAntwort);
document.close();
}
//-->
</SCRIPT>
</DIV> |
Ich habe zweimal dieselbe Codesequenz sowohl in DIV ID="FrageOut" als auch in DIV ID="AntwortOut".
in FrageOut bekomme ich die Fehlermeldung -FrageTab.documentElement. ist Null oder kein Objekt -
während in AntwortOut der Satz gelesen und angezeigt wird.
Die Fehlermeldung in FrageOut, kann ich dadurch verhindern das ich vor der Variablendeklaration nummer, punkte, bogen usw. ein alert(FrageTab) einfüge. Dieser zeigt mir auch an das die Variable FrageTab ein object ist.
Ich habe diverse Möglichkeiten ausprobiert komme aber zu keinem Ergebniss. Vielleicht findet einer von euch die Lösung.
Den gesamten Quellcode kann man sich unter
www.wss-elbmarsch.de Menüpunkt SBF-Binnen/Trainer/StartTrainerSBFB/DEMO angucken. Funktioniert leider derzeit nur mit MSie 6.0.
look and help
Michael Hein
PS. Wer die Lösung findet darf bei mir kostenlos an den Vorbereitungskursen für den Sportbootführerschein Binnen teilnehmen. |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 24.08.2006 13:26:51 Titel: |
|
|
Erster Hinweis:
http://www.html-world.de/artikel/art_j08.php
Zweiter Hinweis:
documentElement existiert nur bei document und nicht bei einem beliebigem Objekt. Insofern ist dein FrageTab-Objekt Unsinn woraus sich die restlichen Fehler ergeben. |
|
Nach oben |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 24.08.2006 13:47:33 Titel: Re: Wo sind die JAVASCRIPT-Spezialisten ? |
|
|
Hein hat folgendes geschrieben: |
PS. Wer die Lösung findet darf bei mir kostenlos an den Vorbereitungskursen für den Sportbootführerschein Binnen teilnehmen. |
<offtopic>
LOL, und der Gewinner ist, ...JAN
</offtopic> |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 24.08.2006 14:10:37 Titel: |
|
|
yeah, wann darf ich meinen scheck in empfang nehmen und die sektkorken knallen lassen? |
|
Nach oben |
|
|
Hein Forumsteilnehmer
Anmeldungsdatum: 14.08.2006 Beiträge: 10
|
Verfasst am: 24.08.2006 17:54:57 Titel: |
|
|
Hallo Jan Winkler,
nur mal zu Erläuterung ' kostenlose Teilnahme' bedeutet das ich keinen Scheck bekomme und nicht umgekehrt.
Aber nun immer langsam mit den jungen Pferden. Meine Frage ist nicht beantwortet und mein Problem durch deinen Einwand nicht gelöst.
Wir sind uns sicher klar darüber, dass FrageTab ein Pointer auf ein Object ist. Sollte diese wie du anmerkst, auf einen falschen Objecttyp zeigen, so würde die Fehlermeldung - falscher Objecttyp - lauten bzw. - Object unterstützt diese Methode nicht -.
Gleichzeitig kann ich mir dann nicht erklären wie ich ein einige Codezeilen später mit dem selben Pointer
antwort = FrageTab.documentElment.childNodes(start).childNodes(5) ohne Fehlermeldung durchkriege und den entsprechenden Teil der xml-Datei auch angezeigt bekomme. Die kannst du dir ansehen wenn du nach der Fehlermeldung den zeigen-Button betätigtst. Du siehst eine Antworttext gelesen aus einer xml-Datei. Innerhalb der xml-Datei kannst du blättern indem du den ok-Button betätigtst.
Auch erklärt das nicht warum durch den Aufruf alert(FrageTab)
auf einmal der Objecttyp geändert sein soll.
Hoffentlich hast du nicht jetzt schon den ganzen Sekt ausgetrunken!
MfG
Michael Hein
PS. Hallo Kambfhäschen,
ich musste mir erst mal von meiner Tochter erklären lassen was LOL bedeutet. Leider hast du dich zu früh gefreut. *g* |
|
Nach oben |
|
|
admin Site Admin
Anmeldungsdatum: 16.01.2005 Beiträge: 323 Wohnort: Berlin
|
Verfasst am: 24.08.2006 18:33:15 Titel: |
|
|
sagt doch gleich dass deine FragenSBFB und Co XML-Elemente sind ...
FrageTab existiert nur dann nicht wenn call nich einen der 6 Werte annimmt. Ergo: Wenn dein FrageTab beim zweiten mal nicht korrekt ist, liegts an call |
|
Nach oben |
|
|
Hein Forumsteilnehmer
Anmeldungsdatum: 14.08.2006 Beiträge: 10
|
Verfasst am: 25.08.2006 07:03:57 Titel: |
|
|
Hallo,
vielleicht muss die Funktionalität der Anwendung Trainer noch etwas erläutern.
Die Variable call wird nach der Auswahl im Menü gesetzt und enthält den Verweis auf die entsprechende xml-Datei, die Variablen start und ziel definieren den Nummernkreis der anzuzeigenden Fragen zu den im Menü aufgeführten Themen.
D.h. beim ersten Aufruf erfolgt kein Zugriff auf die xml-Dateien.
Ergo call ist gesetzt.
Ich muss nicht betonen, dass die Anwendung Trainer - standalone - einwandfrei funktioniert.
Michael Hein |
|
Nach oben |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 25.08.2006 14:53:28 Titel: |
|
|
also das es so kompliziert werden würde häte ich nicht gedacht. eigentlich versteh ich hier nix mehr. somit mein letzter post in diesem thread.
<offtopic>
Hein hat folgendes geschrieben: |
PS. Hallo Kambfhäschen,
ich musste mir erst mal von meiner Tochter erklären lassen was LOL bedeutet. Leider hast du dich zu früh gefreut. *g* |
was sagt man dazu? ... Ja, LOLOLOLOLOLOLOLOLOLOLOL ... ( das bringt mich auf eine gute idee für ein programm.
</offtopic>
MfG Kambfhase |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|