Thomas Kalkowski: Navi und .js Datei

Hi folks,

ich habe wieder einmal ein Problem mit dem Netsi. Ich habe eine HTML-Datei die eine externe .js - Datei nutzt. In dieser externen .js-Datei wird die Seite o.g. HTML-Datei identisch aufgebaut. Unter IE kein Problem. Beim Netsi ist nach dem Aufbau der Seite durch eine JavaScript-Funtion der externen Datei die Zeile <script language="JavaScript" src="test.js"></script> weg. D.h. ein zweiter Aufruf  geht nicht, Netsi meckert, das die (in der externen Datei definierte) Funtion nicht existiert. Anbei die Quelltexte:

1. HTML-Datei:
<html>
<head>
<title>Untitled</title>
   <script language="JavaScript" src="test.js"></script>
</head>
<body bgcolor="Silver"  >
<a href="javascript:doit();">Hi folks</a>
</body>
</html>

und jetzt die Datei test.js

function doit()
{
document.open();
document.write('<html><head><title>Untitled</title><script language="JavaScript" src="test.js"></script> </head><body bgcolor="Silver"  ><a href="javascript:doit();">Hi folks</a></body></html>');
document.close();
}

D.h. doit() baut eigentlich die seite nur identisch wieder auf. Aber im Netsi fehlt , wie bereits gesagt die Zeile mit

<script language="JavaScript" src="test.js"></script>

Kennt Ihr dies Problem??? Und wenn ja, wie kann man dieses Lösen.

Danke
Thomas

  1. Hi,
    mir fällt auf den ersten Blick leider nichts auf ausser die Anführungszeichen

    Hi folks,

    ich habe wieder einmal ein Problem mit dem Netsi. Ich habe eine HTML-Datei die eine externe .js - Datei nutzt. In dieser externen .js-Datei wird die Seite o.g. HTML-Datei identisch aufgebaut. Unter IE kein Problem. Beim Netsi ist nach dem Aufbau der Seite durch eine JavaScript-Funtion der externen Datei die Zeile <script language="JavaScript" src="test.js"></script> weg. D.h. ein zweiter Aufruf  geht nicht, Netsi meckert, das die (in der externen Datei definierte) Funtion nicht existiert. Anbei die Quelltexte:

    1. HTML-Datei:
      <html>
      <head>

    »»  <title>Untitled</title>

    <script language="JavaScript" src="test.js"></script>

    »»  </head>

    <body bgcolor="Silver"  >
    <a href="javascript:doit();">Hi folks</a>
    </body>
    </html>

    und jetzt die Datei test.js

    function doit()
    {
    document.open();
    document.write("<html><head><title>Untitled</title><script language='JavaScript'src='test.js'></script> </head><body bgcolor="Silver"  ><a href='javascript:doit();'>Hi folks</a></body></html>");
    document.close();
    }

    Sollte jetzt gehen!
    Viele Grüsse
    Harald

    1. Hi,
      mir fällt auf den ersten Blick leider nichts auf ausser die Anführungszeichen

      Hallo Harald,
      daran liegt es nicht. Man kann einfache und doppelte Anführungszeichen so oder so verwenden. Außerdem ist in der Originaldatei (das Posting war nur eine kleine Testdatei) eine <style type="text/css">    
          <!--
            SPAN.NOUNDERLINE { text-decoration: none; }
           //-->
          </style>
      Anweisung (also auch mit "umgekehrten" Anführungszeichen vorhanden. Und die wird problemlos übernommen.

      Tja - vielleicht weiß ja noch jemand anderes einen Rat.
      Aus der bisher mageren Resonanz schließe ich, daß
      a) der Fehler nicht bekannt ist oder
      b) bisher keiner eine Lösung kennt.

      Aber ich bin noch voller Hoffnung

      Bye
      Thomas

      1. Hi,
        Ein ähnliches Problem hatte ich bei externen CSS Dateien bis ich darauf kam das Netscape absolute und nicht relative Pfadangaben benötigt.
        Also probier mal die Datei über "http://www......./test.js" aufzurufen

        bye Michael S.

        1. Hi Michael,

          geht trotzdem nicht. Netsi soll ja einfach nur erst einmal Quelltext erzeugen, d.h. document.write() ordnungsgemäß ausführen. Erschreibt alles, auch z.B. Angaben zur CSS-Dateien.

          function doit()
          {
          document.open();
          document.write("<html><head><title>Untitled</title><link rel=stylesheet type='text/css' href='diashow.css'>");
          document.write("<script language='JavaScript' src='file:/D:/Eigene Dateien/JavaScript Apps/Bewerbung/test.js'></script>");
          document.write("</head><body bgcolor='Silver' ><a href='javascript:doit();'>Hi FOLKS</a></body></html>");
          document.close();
          }

          Er schreibt alles bis auf die Zeile mit dem <script>Tag.

          Und demzufolge ist beim nächsten mal die Function doit() nicht bekannt.

          D.h. er kann die Function nicht kennen, da in der HTML-Seite das <script>Tag fehlt.

          Tja - habe ich wohl Pech. Trotzdem Danke und Gruß

          Thomas

        2. Hallo!

          Ein ähnliches Problem hatte ich bei externen CSS Dateien bis ich darauf kam das Netscape absolute und nicht relative Pfadangaben benötigt.

          Meinst Du das allgemein, oder nur in diesem speziellen Fall, wo die Einbindung mit document.write() geschrieben wird? Im ersten Fall ist es Quatsch, selbstverstaendlich kann Netscape relativ referenzieren, im zweiten Fall koennte ich es mir jedoch vorstellen.

          Thomas: Alternativvorschlag: Schreib die ganze Seite, die Du mit document.write() ausgeben willst, stattdessen in eine Variable und weise diese an location.href zu. Also so:

          var newpage = '<html><head><title>Untitled</title><script language="JavaScript" src="test.js"></script> </head><body bgcolor="Silver"  ><a href="javascript:doit();">Hi folks</a></body></html>';
          window.location.href = "javascript:newpage";

          Versuch's mal, vielleicht funzt es dann.

          Calocybe