function + href im Frameset
Doc Taxon
- html
0 Dennis0 Doc Taxon0 Ingo Turski
0 Der Martin
Hallo,
im Head einer HTML-Datei habe ich folgende function():
<script language="JavaScript" type="text/javascript"
function link() { parent.frames.menu.location.href="menu.html"
parent.frames.tree.location.href="tree.html" }
</script>
und im Body:
<script><a href="tree.html" target="_self" onClick="link()">Menü</a></script>
Mit dieser Kombination kann ich zwei Frames eines Framesets mit einem Link laden. Die function() im Head würde ich aber gern in einen dritten Frame desselben Framesets auslagern und möchte trotzdem mit dem Script im body diesen "Doppellink" ausführen können.
Wie stell ich das an? Ich habe es erst mal einfach ohne Zusatz probiert, so findet der Befehl im Body aber nicht die function(), obwohl der dazugehörige Frame schon geladen wurde.
Danke für Vorschläge, Doc Taxon
Hi Doc,
<script language="JavaScript" type="text/javascript
^^^^
Hier fehlt erst mal ">
Außerdem solltest du das JS noch in einen Kommentar schreiben, also:
<!--
function link() { parent.frames.menu.location.href="menu.html"
parent.frames.tree.location.href="tree.html" }
//-->
</script>
<script><a href="tree.html" target="_self" onClick="link()">Menü</a></script>
Wozu ist das das <script> und </script>? Was da drin steht ist doch gar kein Script!
Mit dieser Kombination kann ich zwei Frames eines Framesets mit einem Link laden. Die function() im Head würde ich aber gern in einen dritten Frame desselben Framesets auslagern und möchte trotzdem mit dem Script im body diesen "Doppellink" ausführen können.
Wozu willst du das in eine andere Seite packen? Was erhoffst du dir davon?`
Lagere das Javascript dann doch lieber direkt aus, also tue das reine Javascript (ohne <script...> und <!-- usw.) in eine Datei, nenne diese irgendwas.js und binde es dann so ein:
<script type="text/javascript" src="/pfad/zum/script/irgendwas.js"></script>
Das kannst du dann auch auf mehreren Seite machen. (siehe auch http://de.selfhtml.org/javascript/intro.htm#javascriptdateien)
Aber mal abgesehen davon, du weißt warum Frames grundsätzlich nicht so gut sind und auch Javascript nicht immer die ideale Lösung ist?
MfG, Dennis.
Danke, aber:
Wozu ist das das <script> und </script>? Was da drin steht ist doch gar kein Script!
Sorry, in der Script-Zeile im Body habe ich document.write vergessen:
<script>document.write(<a href="tree.html" onClick="menu()">text</a>)</script>
Wozu willst du das in eine andere Seite packen? Was erhoffst du dir davon?`
Es soll in eine andere Seite, damit ich von verschiedenen Dateien auf function() zugreifen kann.
Lagere das Javascript dann doch lieber direkt aus, also tue das reine Javascript (ohne <script...> und <!-- usw.) in eine Datei, nenne diese irgendwas.js und binde es dann so ein:
<script type="text/javascript" src="/pfad/zum/script/irgendwas.js"></script>
Wie kann ich eine .js-Datei erstellen? Einfach mit dem Editor und dann "speichern unter" Datei.js ?
Danke, Doc Taxon...
Hallo Doc Taxon,
<script type="text/javascript" src="/pfad/zum/script/irgendwas.js"></script>
Wie kann ich eine .js-Datei erstellen? Einfach mit dem Editor und dann "speichern unter" Datei.js ?
Ja. Unter http://de.selfhtml.org/javascript/intro.htm#javascriptdateien findest du alles, was du hierzu wissen musst.
Gruss aus Luzern,
Daniel
Danke sehr, es fkt.,
aber ich habe da auch noch eine if-Anweisung im JavaScript, kann ich die genauso in die js-Datei schreiben? Denn hier kann ich sie ja nicht mit onClick aufrufen. Diese if-Anweisung ist nämlich beim Laden schon aktiv...:
if (parent.frames.length == 0) { location.href = "frameset.html?Datei2.html;" + "Datei3.html"; }
Doc Taxon...
Hi Doc,
Sorry, in der Script-Zeile im Body habe ich document.write vergessen:
<script>document.write(<a href="tree.html" onClick="menu()">text</a>)</script>
Dann fehlt da aber noch ein type="text/javascript"
Es soll in eine andere Seite, damit ich von verschiedenen Dateien auf function() zugreifen kann.
Wie kann ich eine .js-Datei erstellen? Einfach mit dem Editor und dann "speichern unter" Datei.js ?
Dann lagere die Datei aus, wie es auf der von mir verlinkten Seite beschrieben ist und ja, einfach aus einer bla.txt eine bla.js machen, genau wie mit einer .html oder einer .css Datei auch ;-)
MfG, Dennis.
Hi,
Außerdem solltest du das JS noch in einen Kommentar schreiben, also:
<!--
wieso? (Wenn Du jetzt mit "alten Browsern" kommen willst, dann überlege bitte zuerst welche)
freundliche Grüße
Ingo
Hi Ingo,
Außerdem solltest du das JS noch in einen Kommentar schreiben, also:
<!--
wieso? (Wenn Du jetzt mit "alten Browsern" kommen willst, dann überlege bitte zuerst welche)
Das mit den älteren Browsern wäre jetzt tatsächlich mein Argument gewesen, s. http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche.
Na ja, jedenfalls werden in SelfHTML durchgehen Javascripte in Kommentare geschrieben und ich hab mir das als "guter Stil" nun mal so angewöhnt ;-)
MfG, Dennis.
Hi,
Das mit den älteren Browsern wäre jetzt tatsächlich mein Argument gewesen, s. http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche.
Du weißt, wie alt diese Dokumentation ist? Selbst damals gab es nicht viele Browser mehr, vor enen man Javascript verstecken mußte.
Na ja, jedenfalls werden in SelfHTML durchgehen Javascripte in Kommentare geschrieben und ich hab mir das als "guter Stil" nun mal so angewöhnt ;-)
Du darfst es Dir als "modernen Stil" wieder abgewöhnen. ;-)
Natürlich kannst Du auch warten, bis SelfHTML 8.1 es Dir vormacht...
freundliche Grüße
Ingo
Hi Ingo,
Das mit den älteren Browsern wäre jetzt tatsächlich mein Argument gewesen, s. http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche.
Du weißt, wie alt diese Dokumentation ist? Selbst damals gab es nicht viele Browser mehr, vor enen man Javascript verstecken mußte.
Wie war das? "SelfHTML ist mein Gott?" - Ach ne, das war der Validator, ne? (Selfcode). ;-)
Na ja, jedenfalls werden in SelfHTML durchgehen Javascripte in Kommentare geschrieben und ich hab mir das als "guter Stil" nun mal so angewöhnt ;-)
Du darfst es Dir als "modernen Stil" wieder abgewöhnen. ;-)
Natürlich kannst Du auch warten, bis SelfHTML 8.1 es Dir vormacht...
Na ja, ich mache das bei CSS genauso, kommt auch in nen Kommentar rein. Und es schadet ja auch nicht, das in nen Kommentar zu packen - ist halt nur überflüssig :-)
MfG, Dennis.
Hi,
Wie war das? "SelfHTML ist mein Gott?" - Ach ne, das war der Validator, ne? (Selfcode). ;-)
genau. Und der sieht besonders bei XHTML
// <![CDATA[
// ]]>
viel lieber im Scriptbereich.
freundliche Grüße
Ingo
Hallo, Doc Taxon,
<script><a href="tree.html" target="_self" onClick="link()">Menü</a></script>
Die einrahmenden script-Tags solltest du hier lieber weglassen, die sind an dieser Stelle Humbug. Dein Link enthält ja zum Glück noch ein normales href-Attribut, damit auch User ohne Javascript bedient werden.
Die function() im Head würde ich aber gern in einen dritten Frame desselben Framesets auslagern ...
Ich kenne dein Gesamtkonzept nicht, aber ich vermute, dieses Script wäre in der Frameset-Datei am besten aufgehoben. Dann kannst du über parent.link() aus jedem Frame darauf zugreifen.
Wie stell ich das an? Ich habe es erst mal einfach ohne Zusatz probiert, so findet der Befehl im Body aber nicht die function(), obwohl der dazugehörige Frame schon geladen wurde.
Jaja, wenn die Funktion in einem anderen Frame liegt, musst du auch diesen Frame adressieren, z.B. mit top.framename.link().
Dass ein Konzept mit Frames insgesamt nicht gerade vorteilhaft ist, hat Dennis dir ja schon erklärt. Vielleicht möchtest du das gesamte Konzept ja nochmal überdenken?
Schönen Abend noch,
Martin