claude
Goto Top

Javascript Aufruf in einer mit document.write erzeugsten HTML Seite

document.write erzeugt eine leere Seite, wenn solch eine Zeile erzeugt wird: document.write('<script type="text/javascript" src="zbroklink.js"></script>');

Hallo,

Ich bin erst anfänger mit Javascript. Habe ein kleines Problem.

In meinem Verzeichnis/Homepage habe ich einige hundert HTML Seiten, die jede eine kleine Javascript-Suchfunktion haben (selber zusammengebastelt).

Um die Ergebnisse anzuzeigen, erzeuge ich mit document.write eine neue Seite (bzw überschreibe die vorhandene), die nur die Teile enthält, die der Suche entsprechen. Bis da kein Problem (ausser das es nur mit IE klappt, aber ich kenne die Ursache zu diesem Problem).

Jetzt kommt's:
In der Ergebnis-Seite brauche ich Verweise auf externe .js Dateien.
Beispiel:
document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">');  
document.write('<HTML><HEAD>');  
document.write('<TITLE>Claude\'s PC-Tipps DE, Suchergebnis</TITLE>');  
document.write('<link rel=stylesheet type="text/css" href="xformate.css">');  
document.write('<script type="text/javascript" src="zbroklink.js"></script>');  
document.write('<script type="text/javascript" src="zcpct.js"></script>');  
document.write('<script type="text/javascript" src="dhtml.js"></script>');  
document.write('</HEAD>');  
document.write('<BODY>');  
document.write("<a href=\"javascript:history.back()\">zur&uuml;ck zur Liste<\/a><br><p><s>" + meldung);  
usw.
Dann mit einer Schleife werden die Ergebnisse angezeigt.
Beispiel:
 if(ergzw == suchwortanz) { //wenn ergzw = anzahl der Suchwoerter (bei UND) ... alle wörter gefunden
     document.write(inhalthtml[i]);
usw.
Das Problem ist nun, das wenn ich dies auf meinem lokalen Rechner ausführe alles geht. Sobald ich es auf dem Webspace habe, wird eine leere Seite angezeit. Erst wenn ich die 3 Zeilen
document.write('<script type="text/javascript" src="zbroklink.js"></script>');  
document.write('<script type="text/javascript" src="zcpct.js"></script>');  
document.write('<script type="text/javascript" src="dhtml.js"></script>');  
entferne, dann geht es wieder.

Wenn ich den QuellCode der leere Seite anschaue, hört es direkt nach diesen 3 Zeilen auf. Der Rest wird nicht mehr erzeugt.
Habe auch schon probiert den Tag </script> in <\/script> zu ändern. Ohne Erfolg.

Oder muss ich die 3 Zeilen mit DOM hineinfügen, wenn das Document fertig geschrieben ist?

Zu wissen ist auch, das die gleichen 3 Zeilen auch in der ursprüngliche HTML Seite verweist sind.

Wer sich das anschauen möchte: http://www.cpctipps.de
Die Homepage kommt ganz ohne CGI und Datenbank aus.
Auf der Homepage habe ich jetzt die 3 Zeilen entfernt, damit das Suchergebnis angezeigt wird.
Nur die Links 'Tote Links melden' und 'Tipp per eMail weiterleiten' funktionieren nach der Suche nicht.

Hat jemand eine Idee?? ...bestimmt....
Vielen Dank
Gruss
Claude

Content-ID: 83682

Url: https://administrator.de/contentid/83682

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

Claude
Claude 25.03.2008 um 18:49:48 Uhr
Goto Top
LÖSUNG:
Beim Erzeugen einer neuen Seite mit document.write, müssen die </ maskiert werden, sonst klappt das verweisen nicht, und die neue Seite wird nicht erstellt.
Folgendes Beispiel funktioniert nicht:
document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">');  
document.write('<HTML><HEAD>');  
document.write('<TITLE>Claude\'s PC-Tipps DE, Suchergebnis</TITLE>');  
document.write('<link rel=stylesheet type="text/css" href="xformate.css">');  
document.write('<script type="text/javascript" src="zbroklink.js"></script>');  
document.write('<script type="text/javascript" src="zcpct.js"></script>');  
document.write('<script type="text/javascript" src="dhtml.js"></script>');  
document.write('</HEAD>');   
Wenn das maskieren nicht durchgeführt werden kann (weil ZB die Daten mit OuterHtml ausgelesen werden, dann bietet sich diese Lösung an:
Die Verweise können wie folgt am Ende der Funktion nachgeladen werden:
//HIER WERDEN DIE JS-DATEIEN IM HEAD NACHGELADEN 
var newScriptZeile1 = document.createElement("script");  
newScriptZeile1.type="text/javascript";  
newScriptZeile1.src="dhtml.js";  
document.getElementsByTagName("HEAD").appendChild(newScriptZeile1);  
var newScriptZeile2 = document.createElement("script");  
newScriptZeile2.type="text/javascript";  
newScriptZeile2.src="zcpct.js";  
document.getElementsByTagName("HEAD").appendChild(newScriptZeile2);  
var newScriptZeile3 = document.createElement("script");  
newScriptZeile3.type="text/javascript";  
newScriptZeile3.src="zbroklink.js";  
document.getElementsByTagName("HEAD").appendChild(newScriptZeile3);   
mfG
claude