Martin: Nochmals: Bereich in anderem Frame ersetzen

Hallo,

habe schon viele Tipps bekommen und vergleichbare Antworten gelesen, aber es funktioniert immer noch nicht.

Habe Frameset aufgebaut mit 2 Seiten:
<html>
<head><title>Datenkatalog</title></head>
<FRAMESET ROWS="80% ,*"> /* Soll später 100%, 80% jetzt zum testen */
<FRAME SRC="..." NAME="Anzeige">
<FRAME NAME="Hidden">
<NOFRAMES> ... </NOFRAMES>
</FRAMESET>
</html>

Die Anzeige-Seite ist nach einigen Wechseln das Ergebnis einer Datenbankabfrage (Definition in HTX-File) und sieht folgendermaßen aus:
<html>
<head><title>Anzeige Datenelement</title>
<scipt Language="Javascript">
<!--

DivReferenzInhalt = "";       /* Variable für DIV-Bereich "Referenz" */

function SetReferenz(Referenz, ersetzen) {
 if (ersetzen) DivReferenzInhalt=Referenz_Neu;
 else DivReferenzInhalt+=Referenz;
 document.getElementByID('Referenz').innerHTML=DivReferenzInhalt;
}
                             /* Funktion, um DIV-Bereich "Referenz" zu ersetzen */
// -->
</script>

</head>
<body ... >
<TABLE CELLSPACING=0 BORDER=0 WIDTH=640>
<TR><TD ... >
<FORM name="Formular3" METHOD=POST ACTION="..." Target="Hidden">
<INPUT TYPE="hidden" NAME="Datenelement" VALUE="40">
<INPUT TYPE="image" src="..." Alt="Dokument, in dem Datenelement beschrieben">
</FORM>     /* Formular, zum Abruf der Information "Referenz" in den Frame "HIDDEN" */
</TD>
<TD ... >
<FONT SIZE=3 FACE="Arial">
Datum der letzten Änderung     /* Datenelementname */
<br> <br>
<div id="Referenz"></div>      /* Bereich, in dem die Info "Referenz* dargestellt werden soll */
</FONT>
</TD></TR>
</Table>
</body>
</html>

Das Ergebnis der neuen Datenbankabfrage wird ebenfalls als HTX-File definiert. Die Information "Referenz" erscheint in einer JS-Variablen "Referenz_Neu":
<html>
<head>
<title>Referenz</title>
<script language="JavaScript1.2">
<!--

var Referenz_Neu = "<TABLE CELLSPACING=0 BORDER=0 WIDTH=640><TR><TD WIDTH=640 VALIGN=TOP><FONT SIZE=2 FACE=Arial>Realisierungshandbuch Betrieb, Band III, Teil 1<br> <br></FONT></TD></TR></Table>";

parent.frames[0].SetReferenz(Referenz_Neu, true);
         /* Funktion, die die Funktion "SetReferenz" auf der Anzeige-Seite aufrufen und den Inhalt der Variablen "Referenz_Neu" übergeben soll */
//-->
</Script>
</head>
<Body>
Bitte Quelltext ansehen  /* nur damit ich sehe, wann Abfrage ausgeführt */
</Body>
</html>

Im Prinzip alles so, wie es haben möchte, nur die Übernahme des Inhaltes der Variablen "Referenz_Neu" aus dem Frame "HIDDEN" in die Anzeige-Seite in den DIV-Bereich "Referenz" im Frame "ANZEIGE" erfolgt nicht. Statt dessen immer ein kleines gelbes Achtungszeichen ohne weitere Erklärung.

Kann mir jemand auch noch über die letzte Hürde helfen?
Vielen Dank
Martin

  1. Moin!

    Im Prinzip alles so, wie es haben möchte, nur die Übernahme des Inhaltes der Variablen "Referenz_Neu" aus dem Frame "HIDDEN" in die Anzeige-Seite in den DIV-Bereich "Referenz" im Frame "ANZEIGE" erfolgt nicht. Statt dessen immer ein kleines gelbes Achtungszeichen ohne weitere Erklärung.

    Doppelklick drauf, dann kriegst du den Javascript-Fehler angezeigt, der das Funktionieren verhindert. Und den mußt du dann beseitigen.

    Noch besser: Nimm Netscape (egal ob 4 oder 6), und gibt "javascript:" als URL ein, bevor du die Seite testest. Da kriegst du ausführlichere Fehlerinformationen in der "Javascript-Konsole", und kannst auch ein paar einfache Javascriptbefehle ausführen, um zu debuggen.

    - Sven Rautenberg

  2. Hallo,

    Hallo,

    habe schon viele Tipps bekommen und vergleichbare Antworten gelesen, aber es funktioniert immer noch nicht.

    da sind wir jetzt also in der Debug-Phase

    Habe Frameset aufgebaut mit 2 Seiten:
    <html>
    <head><title>Datenkatalog</title></head>
    <FRAMESET ROWS="80% ,*"> /* Soll später 100%, 80% jetzt zum testen */
    <FRAME SRC="..." NAME="Anzeige">
    <FRAME NAME="Hidden">
    <NOFRAMES> ... </NOFRAMES>
    </FRAMESET>
    </html>

    Die Anzeige-Seite ist nach einigen Wechseln das Ergebnis einer Datenbankabfrage (Definition in HTX-File) und sieht folgendermaßen aus:
    <html>
    <head><title>Anzeige Datenelement</title>
    <scipt Language="Javascript">
    <!--

    DivReferenzInhalt = "";       /* Variable für DIV-Bereich "Referenz" */

    function SetReferenz(Referenz, ersetzen) {

    //mach mal hier ein paar alerts rein
       alert("SetReferenz");
       alert(Referenz);

    if (ersetzen) DivReferenzInhalt=Referenz_Neu;
    else DivReferenzInhalt+=Referenz;

    alert(DivReferenzInhalt);
    //bis dahin wirds gehn, jetzt kommt der FEHLER !!!
    //Hurra, ich habs gefunden!!!

    document.getElementByID('Referenz').innerHTML=DivReferenzInhalt;

    //muß heißen getElementById mit kleinem d am Ende!!!
    __________________________^
    //ich hoffe das war alles

    }
                                 /* Funktion, um DIV-
    Im Prinzip alles so, wie es haben möchte, nur die Übernahme des Inhaltes der Variablen "Referenz_Neu" aus dem Frame "HIDDEN" in die Anzeige-Seite in den DIV-Bereich "Referenz" im Frame "ANZEIGE" erfolgt nicht. Statt dessen immer ein kleines gelbes Achtungszeichen ohne weitere Erklärung.

    Da mußt Du mal ein Doppelklick machen, auf das _kleines gelbes Achtungszeichen_ dann kriegst Du noch die Zeilennummer vom Fehler gesagt (im IE).

    Kann mir jemand auch noch über die letzte Hürde helfen?
    Vielen Dank
    Martin

    Ich hoffe, das war's jetzt.
    Gruß, Lutz.

  3. Hallo

    ich kann dir zu deinem Problem zwar nicht mehr sagen, als hier schon gesagt wurde, habe aber noch eine Frage.

    Funktioniert das Teil auch im Netscape?
    innerHTML funktioniert bei mir im NS 4.x nicht.

    Oder hast du für den Netscape eine andere Lösung (diese würde mich sehr interessieren)?

    Gruss Michael

    1. es ist wohl nicht das innerHTML, sondern das getElementById (auch mit kleinem d) das nicht funktioniert bei NS 4.x.

      Gruss Michael

      1. es ist wohl nicht das innerHTML, sondern das getElementById (auch mit kleinem d) das nicht funktioniert bei NS 4.x.

        Gruss Michael

        Hallo Michael,

        schau Dir in SELFHTML das Beispiel unter Dynamisches HTML -> Beispiele für die Praxis -> Laufende Datums-/Uhrzeitanzeige an.
        Genau so kannst Du es machen (dynamisch Inhalte bei verschiedenen Browser austauschen). Wenn Du noch die ältere Version 7.0 hast, kannst Du auch dort gucken, da ist es für den Laien noch etwas leichter zu verstehen.

        Gruß Lutz.

        1. Vielen Dank für den Tipp!

          Werde es mal studieren!

          Gruss Michael

          1. Funktioniert! Aber leider nur mit Layers und diese lassen sich nicht vernünftig in meine Anzeige einbauen. Der Text der Layer wird über anderen Text und Bilder einfach rübergeschrieben...

            Tja.. aber immerhin.. technisch möglich!

            Gruss Michael