Frameset mit dynamischen SRC=" " beim Aufruf
hsga
- javascript
Hallo,
ich habe hier folgende Herausforderung:
Ich möchte über einen Excel-Hyperlink eine lokale *.html Datei aufrufen, in der dann anhand eines übergebenen Parameters dynamisch ein(!) Frame (SRC="xy")im Frameset definiert und aufgerufen wird.
Beispielaufruf:
start.html?http://www.hsga.de/
Das Frameset sollte dann lauten:
Frame src="statische URL"
Frame src="http://www.hsga.de/"
Leider habe ich in der Doku bislang nur Code entdeckt, mit dem ich dynamisch "href" ändern kann und dann noch mal mit einem Klick irgendeinen Frame anspreche. Aber das solls ja nicht sein.
Leider bin ich noch nicht soo bewandert in Javascript und bräuchte da einen entscheidenden Codeschnipsel :-)
Vielen Dank schon mal im Voraus.
Thomas
Mahlzeit hsga,
Leider habe ich in der Doku bislang nur Code entdeckt, mit dem ich dynamisch "href" ändern kann und dann noch mal mit einem Klick irgendeinen Frame anspreche. Aber das solls ja nicht sein.
Ein <http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#frame@title=<frame>>-Objekt hat durchaus eine src-Eigenschaft.
Leider bin ich noch nicht soo bewandert in Javascript und bräuchte da einen entscheidenden Codeschnipsel :-)
Zeig doch mal, was Du bisher hast und beschreibe exakt und nachvollziehbar, was genau Dein Problem ist.
MfG,
EKKi
Hi,
lokal geht das leider nicht. Wenn deine Excel-Datei (oder ein anderes Programm) eine URL wie start.html?http://www.hsga.de/ aufruft, dann würde das Betriebssystem das ALLES als einen Dateinamen interpretieren.
Die Trennung durch das Fragezeichen in Parameter funktioniert nur online und wird durch den Webserver gemacht. (Und auch nur weil das so üblich ist. Der Webserver könnte auch anders. ;-)
Viele Grüße,
Thomas
Hallo Thomas
Mit JavaScript kann auch auf URL Parametern zugreifen und mit ihnen arbeiten, dazu benötigt es keinen Webserver.
Gruß
Ole
Ole
ja, zugreifen kannst du. Funktioniert sogar wenn du die URL im Browser eintippst.
Aber du kannst keine Datei mit ? im Dateinamen starten. Kapiert Windows nicht, weil man in der Kommandozeile nicht einfach sowas eingeben kann:
c:> start test.html?parameter
Thomas
Im Frameset:
<frameset>...<frame name="framename" ...>...</frameset>
<script type="text/javascript">
if (http://de.selfhtml.org/javascript/objekte/location.htm#search@title=location.search != "")
http://de.selfhtml.org/javascript/objekte/frames.htm@title=frames.framename.http://de.selfhtml.org/javascript/objekte/location.htm#href@title=location.href = location.search;
</script>
Mathias
Hallo Mathias,
Im Frameset:
<frameset>...<frame name="framename" ...>...</frameset>
<script type="text/javascript">
if (http://de.selfhtml.org/javascript/objekte/location.htm#search@title=location.search != "")
http://de.selfhtml.org/javascript/objekte/frames.htm@title=frames.framename.http://de.selfhtml.org/javascript/objekte/location.htm#href@title=location.href = location.search;
</script>
Du schreibst im(!) Frameset. Ich habe jetzt schon so alles mögliche durch.
<FRAMESET BORDER="0" FRAMEBORDER="0" FRAMESPACING="0" COLS="180,*">
<FRAME SRC="navi.html" NAME="side">
<FRAME SRC="" NAME="main">
</FRAMESET>
<script type="text/javascript">
alert ("Location: ", window.location.search);
parent.frames[1].location.href = "http://www.hsga.de";
</script>
Egal, wo ich das hinsetze, die Konsole meldet mir "parent.frames[1] has no Properties, selbst bei einer Hard-Coded Seite. Den Alert habe ich da nur reingesetzt, damit ich überhaupt was sehe.
Gruß Thomas
http://de.selfhtml.org/javascript/objekte/frames.htm@title=frames.framename.http://de.selfhtml.org/javascript/objekte/location.htm#href@title=location.href = location.search;
parent.frames[1].location.href = "http://www.hsga.de";
Egal, wo ich das hinsetze, die Konsole meldet mir "parent.frames[1] has no Properties
Schau dir doch mal mein Beispiel genau an und überlege, warum ich das so geschrieben habe und schau dir den Unterschied zu deiner Codezeile an.
»parent ist ein reservierter Fenstername, den Sie zum Ansprechen von Fenstern innerhalb eines Frame-Sets verwenden können. Anstelle von parent können Sie auch top verwenden. Mit parent sprechen Sie das Eltern-Fenster des aktuellen Frame-Fensters an, mit top in jedem Fall das oberste Anzeigefenster des Browsers.«
parent ist nur notwendig, wenn du dich in einem Frame-Dokument, das Teil eines Framesets ist. Damit kommst du aus dem Frame-Dokument zum window-Objekt des Framesets.
Wenn du allerdings ein Script ins Frameset selbst schreibst, dann ist window bereits das gewünschte Objekte mit dem gewünschten frames-Unterobjekt.
Mathias