explorer lädt keine Seite aus document.URL
Stephan
- javascript
Folgendes Problem,
eine Seite die Bestandteil eines Framesets ist, soll im Falle eines seperaten Aufrufes(Google) das Frameset selber generieren und sich in den entsprechenden Frame schreiben. Mit writeln wird der entsprechende Code an den Browser geschickt und per document.URL oder window.location.pathname oder ... etc die Seite in den entsprechend Frame geladen. Das klapt mit dem Script unten unter Firefox einwandfrei nur der Explorer macht da nicht mit. Es scheint, dass document.URL, window.location.pathname,... etc. in der writeln-Methode unwirksam sind. Die restlichen Frames werden korrekt gefüllt.
Weis jemand was ich da falsch mache?
Danke.
code:
if(parent.document.getElementsByTagName("frameset").length <= 0)
{
pfad = "<frame src="" + document.URL + "" name="content" frameborder="no" scrolling="auto" noresize marginwidth="0" marginheight="0" id="content">";
alert(pfad);
//document.writeln(document.URL);
document.writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">');
document.writeln('<html>');
document.writeln('<head>');
document.writeln('<title>Transporterraum berlin.</title>');
document.writeln('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');
document.writeln('</head>');
document.writeln('<frameset rows="*,50" framespacing="0" frameborder="no" border="0">');
document.writeln('<frameset cols="600,*" framespacing="0" frameborder="no" border="0">');
document.writeln(pfad);
document.writeln('<frame src="player/player_blank.html" name="player" frameborder="no" scrolling="no" noresize marginwidth="0" marginheight="0" id="player">');
document.writeln('</frameset>');
document.writeln('<frame src="menu.html" name="menu" frameborder="no" scrolling="no" noresize marginwidth="0" marginheight="0" id="menu">');
document.writeln('</frameset>');
document.writeln('<noframes><body>');
document.writeln('</body></noframes>');
document.writeln('</html>');
}
Hallo,
eine Seite die Bestandteil eines Framesets ist, soll im Falle eines seperaten Aufrufes(Google) das Frameset selber generieren und sich in den entsprechenden Frame schreiben.
es dürfte mehrere Lösungen geben.
Der IE sollte mit window.location o.ä. eigentlich klarkommen.
Ein Versuch wäre statt writeln erst eine vollständige Variable der ganzen Datei,
oder auch des kompletten Framesets, zu erzeugen und diese auf einmal zu schreiben.
Habs jetzt nicht getestet aber im Prinzip so:
</head>
<script ...>
var wri='<frameset>';
wri+='<frame src="'+window.location+'" name=... ';
wri+='<noframes>...</noframes>';
wri+='</frameset>';
document.write(wri);
</script>
</html>
Du kannst aber auch versuchen im Frameset z.B. about:blank als src zu laden und
dann die nötige Datei per JavaScript in das Frame nachzuladen, u.U. über
ein geeignetes onload.
Grüsse
Cyx23
Danke erstmal für den Tip mit der variable. Hat aber nichts genützt. Ich kanns drehen und wenden wie ich will, der explorer schreibt die seite einfach nicht in den frame. window.location habe ich auch schon probiert, mit dem selben ergebniss.seltsam ist nur, dass andere statische seiten in andere frames des framesets hineingeladen werden.
Es klapt eiwandfrei mit Firefox Win/mac und Safari. der explorer zeigt lediglich im quellcode ein html in/out an. ich nehme an microsoft hat sich sicherheitstechnisch auf die falschen sachen konzentriert.
stephan
Hallo,
Es klapt eiwandfrei mit Firefox Win/mac und Safari. der explorer zeigt lediglich im quellcode ein html in/out an. ich nehme an microsoft hat sich sicherheitstechnisch auf die falschen sachen konzentriert.
über die Ursachen könnte ich nur spekulieren.
Es gibt ja noch die schon erwähnte Möglichkeit nachzuladen, über eine
Browserweiche kannst du ja nur den IE entspr. versorgen.
Hier eine solche Lösung für den Netscape 4, vielleicht lässt es sich auf auf
den IE übertragen:
http://www.lipfert-malik.de/webdesign/tutorial/bsp/iframe_Netscape4_2.html
Grüsse
Cyx23
Hallo Stephan
Folgendes Problem,
eine Seite die Bestandteil eines Framesets ist, soll im Falle eines seperaten Aufrufes(Google) das Frameset selber generieren und sich in den entsprechenden Frame schreiben.
Es scheint, dass document.URL, window.location.pathname,... etc. in der writeln-Methode unwirksam sind. Die restlichen Frames werden korrekt gefüllt.
Zu Gernots Artikel Übergroße Tabellen, hatte ich an einer Version
gearbeitet, die ohne extra Framesetdatei auskommen sollte. Dort sollte ein
Javascriptscript das Frameset schreiben und die Tabelle(n) in dieses laden.
In vielen Browsern, auch im IE unter Windows 98 funktionierte das ohne
Probleme.
Als ich es dann unter Windows 2000 testete, blieben die Frames leer.
Ich führte dann weitere Tests durch, es gelang mir nicht, in den Frame einer
Seite sich selbst zu laden, auch nicht, wenn ich die URL im Javascript
direkt angab.
Es blieb dann bei dem extra Frameset:
http://d-graff.de/demos/selfhtml/sprachlernspiele/tabelle.html
bis auf die Tabellen selbst identisch:
http://d-graff.de/demos/selfhtml/sprachlernspiele/testtab.html
http://d-graff.de/demos/selfhtml/sprachlernspiele/Timeline.html
Du wirst wohl eine separate Framesetdatei nicht vermeiden können.
Auf Wiederlesen
Detlef
danke detlef,
weiss jetzt an was ich bin, werde wohl auf php ausweichen.
stephan