• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage zu Frames und deren Quellcode

wildi

Neues Mitglied
abe jetzt meine erste HP mit Frames gecodet. Sie besteht aus drei Frames ("mainframe" (für Text und so, "rightframe" für die Infobox und "topframe" für Logo und Menu. Bin jetzt grade dabei der Seite das leben ein zu hauchen, also die ganzen Verlinkungen zu setzen. Habe jetzt folgendes Problem: Ich habe für jede Unterseite entsprechende .htm Seiten in den Mainordner erstellt. Auf der Seite soll sich weder der topframe noch der rightframe ändern, sondern nur der mainframe. Wenn ich jetzt einen Button mit einer von mir erstellten .htm Seite verlinke, dann schreibt mir das Programm den Inhalt der Seite auf den topframe (da befindet sich die Leiste ja auch)... Er soll ja aber auf den mainframe. Wie kann ich das definieren?

(arbeite mit Dreamweaver 8)

Bin mit HTML nur sehr dürftig vertraut, und habe deshalb auch ein paar Probleme den Quelltext zu entziffern, da Dreamweaver total seltsame Formeln benutzt, die mir einfach zu hoch sind. Ich sende euch jetzt den Quelltext von der Datei die eigentlich einmal die "index.html" sein soll, wenn ich den Namen der Dateien nämlich ändere, dann stimmt nix mehr.

Also hier "UntitledFrameset-3.html"

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Rugby Union</title>
<style type="text/css">
<!--
body {
background-image: url(Bilder/Main/logo.jpg);
}
-->
</style>
<script type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a)&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>


Irgendwo hier muss doch definiert werden, welche Inhalte auf welchen Frame kommen?

Ich bitte euch eindringlichst um Hilfe =)


Danke, Wildi
 
...du hast nur den <head>-Bereich des Quelltextes geposted, der Rest wäre auch interressant gewesen.
Nun gehe ich daher davon aus, das danach ein <frameset>-Bereich kommt.

In dem Falle könntest du deinen Navigationslinks ein target verpassen, damit der weiss wo er das reinladen soll:

<a target="mainframe" href="url.html">Linktext</a> <!-- wenn frame name="mainframe" -->
<a target="#mainframe" href="url.html">Linktext</a> <!-- wenn frame id="mainframe" -->

Vielleicht hilft dir das weiter.
 
Hier noch der Body:
<body onload="MM_preloadImages('Bilder/Buttons/button_club2.jpg','Bilder/Buttons/button_mannschaft1.jpg','Bilder/Buttons/button_club2.gif','Bilder/Buttons/button_home2.jpg','Bilder/Buttons/button_mannschaft2.jpg','Bilder/Buttons/button_tgn2.jpg','Bilder/Buttons/button_Leitung2.jpg','Bilder/Buttons/button_links2.jpg','Bilder/Buttons/gesichtsbuch2.gif')">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center"><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','Bilder/Buttons/button_club2.gif',1)"></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','Bilder/Buttons/button_mannschaft1.jpg',1)"></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','Bilder/Buttons/button_club2.jpg',1)"></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','Bilder/Buttons/button_club2.jpg',1)"></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','Bilder/Buttons/button_home2.jpg',1)"><img src="Bilder/Buttons/button_home1.jpg" name="Image1" width="120" height="30" border="0" id="Image1" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image2','','Bilder/Buttons/button_club2.jpg',1)"></a><a href="Mannschaft.htm" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image2','','Bilder/Buttons/button_mannschaft2.jpg',1)"><img src="Bilder/Buttons/button_mannschaft1.jpg" name="Image2" width="120" height="30" border="0" id="Image2" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image3','','Bilder/Buttons/button_termine2.jpg',0)"><img src="Bilder/Buttons/button_termine1.jpg" name="Image3" width="120" height="30" border="0" id="Image3" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image4','','Bilder/Buttons/button_rugby2.jpg',0)"><img src="Bilder/Buttons/button_rugby1.jpg" name="Image4" width="120" height="30" border="0" id="Image4" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image5','','Bilder/Buttons/button_tgn2.jpg',1)"><img src="Bilder/Buttons/button_tgn1.jpg" name="Image5" width="120" height="30" border="0" id="Image5" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image6','','Bilder/Buttons/button_Leitung2.jpg',1)"><img src="Bilder/Buttons/button_Leitung1.jpg" name="Image6" width="120" height="30" border="0" id="Image6" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image7','','Bilder/Buttons/button_links2.jpg',1)"><img src="Bilder/Buttons/button_links1.jpg" name="Image7" width="120" height="30" border="0" id="Image7" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image8','','Bilder/Buttons/gesichtsbuch2.gif',1)"></a></p>
</body>
</html>

Wobei ich mir ziemlich sicher bin, das da nichts interesanntes mehr drin steht. Wie du jetzt allerdings sehen kannst, habe ich zum verlinken rolloverbuttons verwendet. Dein Script oben hilft mir leider nur wenig, weil ich nicht weiß wo es reinkommt und zudem habe ich immernoch überhaupt keine Ahnung, was der von mir gepostete Headercode bedeutet. Wie wäre der Befehl denn, wenn man die rolloverbutton-Sache mit impliziert?^^

Danke im Vorraus
 
@michaelos

Ich weiß schon, das Frames nicht mehr so aktuell sind. Die Seite soll zwar von mir administriert werden, einzelne Inhalte (neue Spielergebnisse ö.ä) sollten aber auch von den Spielern eingetragen werden können. Da schien es mir einfacher, die Seite mit Frames zu strukturieren, da sich die Inhalte dann ganz leicht auch von Laien abändern lassen. Ich mache das Projekt ehrenamtlich und hauptsächlich deshalb, um in Photoshop etwas voran zu kommen. Die Seite soll optisch hübsch sein, und die wichtigsten Infos enthalten (eben eine reine Infoseite) PHP ist meines Wissens eine kompeltt eigene Serversprache, und ich habe leider weder die Zeit noch das Knowhow mich damit auseinander zu setzen. Es muss also irgendwie auch so gehen^^
 
Dein Script oben hilft mir leider nur wenig
Das geht mir gerade ähnlich - wobei, was ich oben geschrieben habe ist simpelstes HTML und kein script.

In dem <body> - Inhalt von oben sehe ich immer noch keine frames, aber zumindest die Links schonmal.

Links in HTML sehen ja so aus: <a href="urlzurseite.html">Linktext oder Bild</a>
Die findest du auch oben in deinem quelltext.

Mein Vorschlag war ein target-attribut hinzuzufügen, wie oben Beschrieben:
<a target="mainframe" href="url.html">Linktext</a> <!-- wenn frame name="mainframe" -->
<a target="#mainframe" href="url.html">Linktext</a> <!-- wenn frame id="mainframe" -->

Irgendwo muss dein mainframe ja sein, normalerweise sollte der dann ungefähr so aussehen:
<frame name="mainframe" id="mainframe" ......

Evtl solltest du dich mal mit dem Grundlagen eines html-Dokuments auseinandersetzen, ohne Dreamweaver.
Das du bei dem (wirklich unnötigen) Rollover- Geschrummel, den dein Programm da ausspuckt nichts lesen oder gar verstehen kannst, wundert mich nicht.
 
So...

So ich melde mich nochmal! Danke erst einmal für die vielen Antworten!

Werdet ja schon bemerkt haben, das ich nicht so der Proprogammer bin^^ Das bisschen was ich kann, hat aber bisher immer gereicht um meine Seiten online zu stellen, deswegen bin ich gerade selbst so verwundert:D.

Ich habe nun also alles nochmal gelöscht, und bin noch einmal genau so vorgegangen, wie gestern: Neues Dokument in Dreamweaver aufgemacht, und ein doppeltverschachteltes Frameset gewählt. Ich kann dann via Benutzeroberfläche die Frames beliebig skalieren. Dann habe ich für meinen TOPFrame ein Hintergrundbild definiert, auf den ContentFrame etwas Text hinterlassen, und auf den rechten Frame ein Bild geklatscht. Der Einfachheit halber habe ich alles andere weggelassen. Dann habe ich meine Seite in meinem Rootverzeichnis gespeichert.

Ich habe jetzt eine:
Untitled-1.html (Nur der ContentFrame)
UntitledFrame-2.html (Nur der TopFrame)
UntitledFrame-3.html (Nur der RightFrame)

und zu guter Letzt:
UntitledFrameset-2.html (auf dieser Seite wird alles zusammengefügt; Den alten Quelltext dieser Seite habe ich euch auch gepostet)


(Download der Dateien unten)

Das System an sich finde ich eigentlich sehr gelungen, da jemand, der nur schnell was updaten will eigentlich bloß die Datei Untitled-1.html (Nur der ContentFrame) öffnen kann (sogar mit dem Editor) und den Text nach belieben ergänzen oder durch einen neuen ersetzen kann. Das gleiche gilt für den rechten Frame.

Das Problem ist eben nur, ich darf die Namen der Dateien nicht ändern, weil die Frames sonst nicht mehr angezeigt werden, kann im Quellcode aber einfach keinen Hinweis entdecken, wo welcher Frame erscheint.

Vielleicht habe ich auch einen Denkfehler gemacht?! Ich dachte, ich hätte eine feste index.html mit allen Frames, und der Contenttext wird in ein .htm Dokument geschrieben, wobei die anderen Frames nach einem Aufruf einer bestimmten .htm unverändert bleiben?!

Naja, ich hab euch jedenfalls meinen Ordner einmal komplett online gestellt. Vielleicht wisst ihr ja was los ist, wenn ihr die Seiten selbst mal in eurem HTML-Editor öffnet.

Leider hat der Uploadmanager gerade keine Lust, deswegen hab ichs vorerst mal auf zippyshare gestellt, sobald es wieder funktioniert stell ich es nachträglich hier auch noch rein=)

Zippyshare.com
 
versuchs einfach mal so:
Das wäre zB deine index.html:
HTML:
<html>

<head>
<title>Deine index.html</title>
</head>

<frameset cols="25%,75%">
<frame src="menu.html" name="menu">
<frame src="inhalt.html" name="mainFrame">
</frameset>

</html>
Diese Seite hat nun 2 Frames, in das mainFrame lädt der dann den Inhalt einer inhalt.html. (oder auch untitled.htm, wenn du das ins src-Attribut schreibst - wie du willst)
In den "menu"-frame lädtst du durch das ' <frame src="inhalt.html" name="mainFrame"> ' die menu.html, und diese sähe wie folgt aus:

HTML:
<html>

<head>
<title>Das Menu</title>

</head>

<body>

<a href="inhalt2.html" target="mainFrame">Menüpunkt1</a><br />
<a href="inhalt3.html" target="mainFrame">Menüpunkt2</a><br />

</body>

</html>
Da hast du nun 2 Links in deinem Menü-Frame, deren href-attribut angibt, welcher inhalt geladen wird (inhalt1.html oder inhalt2.html) und das target-Attribut gibt an, in welchem frame das landet.

Wenn das mal klappt, kannst du evtl noch deinen dritten frame hinzufügen, danach evtl noch deine Rollover-Effekte. (wenn diese auch einfacher und sauberer mit CSS machbar wären, aber das ist ein anderes Thema)
 
Zuletzt bearbeitet:
Zurück
Oben