uepselon: Variablen verlieren ihren Wert in NN 4.x

Hallo,

ich generiere  mit der document.write Funktion neuen
HTML Code.

Die Funktion sieht z.b: so aus:

mach_html()
{
globale_var = "etwas"

document.write('<HTML> ...');

if (globale_var == ...) bringt nen Fehler in NN da er ab jetzt die Variable nicht mehr kennt.

}

nachdem ich das neu Dokument begonnen habe kann ich einfach nicht
mehr auf die alten variablen zugreifen.

Kann hier evtl. der Fehler sein:

Die Funktion mach_html ist in einer externen js Datei gespeichert.
in der Funktion selbst wird diese Datei per document.write wieder
in die neue Seite eingebunden. Kommt da evtl. Netscape mit den Variablen durcheinander?

Gruß

uepselon

  1. ich generiere  mit der document.write Funktion neuen
    HTML Code.

    Die Funktion sieht z.b: so aus:

    mach_html()
    {
    globale_var = "etwas"

    document.write('<HTML> ...');

    Also mit Verlaub, diese Aktion macht überhaupt keinen Sinn. Javascript-Code muß innerhalb von <html></html> stehen. Mit Deiner Anweisung oben schreibst Du also innerhalb von einem <html>-Block noch einen, das ist einfach nur Unfug. Und wenn der Javascript-Code außerhalb eines <html>-Blocks steht, ist Deine HTML-Datei schlichtweg falsch.

    IMHO eigentlich kein Wunder, daß ein Browser dabei durcheinander kommt. Was willst Du denn damit überhaupt bezwecken?

    Gruß,
      soenk.e

    1. Hallo,

      Also mit Verlaub, diese Aktion macht überhaupt keinen Sinn. Javascript-Code muß innerhalb von <html></html> stehen. Mit Deiner Anweisung oben schreibst Du also innerhalb von einem <html>-Block noch einen, das ist einfach nur Unfug. Und wenn der Javascript-Code außerhalb eines <html>-Blocks steht, ist Deine HTML-Datei schlichtweg falsch.

      Es wird ja ein neus Dokument, erzeugt, die Beispiel version ist
      stark vereinfacht. Die seite wird über document.write komplett neu
      gesetzt. dazu sind auch noch ein paar notwendige Abfragen drin, die
      aber nicht mehr greifen nachdem das neue Dokument anfängt.

      IMHO eigentlich kein Wunder, daß ein Browser dabei durcheinander kommt. Was willst Du denn damit überhaupt bezwecken?

      Das will ich damit bezwecken:

      <members.lycos.de/tselb/graph.html> - funktioniert bisher nur offline im IE

      <members.lycos.de/tselb/demo_sinx.html> - So kanns dann nach dem document.write ... aussehen.

      Gruß

      uepselon

      1. Hallo,

        Hoppla, kleiner Linkfehler

        http://members.tripod.de/tselb/graph.html - funktioniert bisher nur offline im IE

        http://members.tripod.de/tselb/demo_sinx.html - So kanns dann nach dem document.write ... aussehen.

        Gruß

        uepselon

      2. Also mit Verlaub, diese Aktion macht überhaupt keinen Sinn. Javascript-Code muß innerhalb von <html></html> stehen. Mit Deiner Anweisung oben schreibst Du also innerhalb von einem <html>-Block noch einen, das ist einfach nur Unfug. Und wenn der Javascript-Code außerhalb eines <html>-Blocks steht, ist Deine HTML-Datei schlichtweg falsch.

        Es wird ja ein neus Dokument, erzeugt, die Beispiel version ist
        stark vereinfacht. Die seite wird über document.write komplett neu
        gesetzt.

        Wenn Du quasi die gesamte Datei neu schreibst, ziehst Du Dir aber für meine Begriffe selbst den Teppich unter dem Füßen weg. Schließlich überschreibst Du damit auch Deinen Javascript-Code, sowohl direkt in der Datei stehenden als auch indirekt über das src-Attribut eingebundene Sachen.

        Probier's mit document.open(). In Stefan's SelfHTML-Beispiel löscht das jedenfalls ganz prima den Fensterinhalt.

        Gruß,
          soenk.e

  2. Hallo,

    hier das Problem noch etwas genauer auf den Punkt gebracht:

    function make_html()
             {
             thevar = 'Halli Hallo';

    if (document)
                document.close();

    document.open();
             document.write(thevar);
             document.close();
             }

    Im IE wird Halli Hallo ausgegeben wenn die Funktion aufgerufen wird.
    NN kennt hingegen thevar nicht mehr, wie kann ich jedoch diesen Wert
    in NN ausgeben.

    Gruß

    uepselon