Archivlink: javarea.de Forum > (X)HTML & CSS (allgemein) > Frame
Vollständigen Link anzeigen: javarea.de Forum > (X)HTML & CSS (allgemein) > Frame

Pages: [1] 2 ... nächste » ... Letzte »

geschrieben von Galaxis am 06.03.2006 - 10:31
Hallo
Folgendes Problem:
Ich habe 2 Hauptframes Frames definiert und viele Dokumente die im Hauptfenster (entweder name=hauptteil oder name= info) durch klicken im Menü ausgewechselt werden sollen:

1. Hauptframe (Hauptframe1.html):
<frameset cols="15%,65%,20%">
<!-- Menü -->
<frame frameborder="0" framespacing="0" frame name=Menu src="frames/Menu.html" scrolling="no" noresize>
<!--Hauptfenster -->
<frame frameborder="0" framespacing="0" frame name=hauptteil src="hauptteil.html" scrolling="auto" noresize>
<!-- rechts -->
<frame frameborder="0" framespacing="0" frame name=rechts src="frames/rechts.html" scrolling="no" noresize>
</frameset>

2. Hauptframe (Hauptframe2.html)
<frameset cols="15%,45%,40%">
<!-- Menü -->
<frame frameborder="0" framespacing="0" frame name=Menu src="frames/Menu.html" scrolling="no" noresize>
<!--Hauptfenster -->
<frame frameborder="0" framespacing="0" frame name=info src="Info.html" scrolling="auto" noresize>
<!-- rechts -->
<frame frameborder="0" framespacing="0" frame name=rechts src="frames/rechts.html" scrolling="no" noresize>
</frameset>

Ich möchte aber das mir einige bestimmte Seiten im "Hauptframe1.html" mit dem namen=hauptfenster dargestellt bekomme und ein paar Seiten im "Hauptframe2.html" mit dem Namen=Info dargestellt.
Wenn ich vom "Hauptframe1.html" in das "Hauptframe2.html" wechsle (direkter Link zur Info Seite und den Unterseiten) und im Menü dann wieder auf eine anders Seite wechseln möchte die auf das "Hauptframe1.html" ausgelegt ist, (Menü ist auf das "Hauptframe1.html" ausgerichtet da ich 90% aller Seiten dort anzeigen möchte) das Menü mit den Links nicht funktioniert!! Er macht gar nix ich komme einfach nicht mehr heraus!!

Hier z.b.: 2 Links die im Menü stehen:
<td align="left" valign="bottom" width="78" height="23" border='0' >
<a href="../unterseiten/unterseite_cup.html" class='abtext' base target="hauptteil">
<img src="channelleiste/textfeld_menue_cup.gif" alt="" border="0"></a></td>

<td align="left" valign="bottom" width="57" height="23" >
<a href="../unterseiten/unterseite_spielberichte.html" class='abtext' base target="hauptteil">
<img src="channelleiste/textfeld_menue_spielberichte.gif" alt="" border="0"></a></td>

Wie geagt das Menü und die Links sind auf das "Hauptframe1.html" ausgerichtet.
Wie kann ich ihm auf einfachste Weise sagen das er wenn im Link base target="hauptteil" steht das "Hauptframe1.html" nehmen und wenn base target="Info" steht das "Hauptframe2.html" nehme!?!

Danke Petra


geschrieben von zippy am 06.03.2006 - 14:42
Das ist ein völlig verschachteltes Frameset, und sowas macht mich an einem depressiven Tag wie heute noch depressiver. Mir scheint, ich habe das Frameset, welches über den beiden "Hauptframes" steht, die selbst wiederum Framesets beinhalten, nicht erblickt in Deinem Posting.

So, wie es mir trüben Auges entgegen kommt, KANN das Menue nicht wissen, welches Hauptfenster gemeint ist, schon alleine deshalb, weil Du in beiden Hauptframes identische Namen für die jeweiligen Unterframes vergibst. Ein Posting mit einem Link zur Beispielseite wäre hilfreich, erstmal ne stringente Framelösung vorschlagen zu können.

Dein Frameset lässt sich nämlich garantiert optimieren, und wenn dann Probleme bleiben, zB, dass man mehrere Frames gleichzeitig aktualisieren muss, helfen wir Dir mit ein bisserl Javascript weiter.

geschrieben von Galaxis am 06.03.2006 - 17:33
Hallo zippy

Ich hab mal einen Auszug aus meinen Seiten gemacht mit dem menü, frames und so (hab auch viel Text rausgelöscht kann also sein das ich in der Eile ein paar Klammern vergessen habe zu löschen brauchst du also nicht zu korregieren)
Zu starten ist das ganze mit Index.

Mir geht es darum wenn ich im Hauptframe von "Cup2006.html" in einer Unterseite bin
und ich z.b. auf Team gehe ich dann automatisch im selben Fenster wieder auf das Hauptframe von "index.html" komme mit der dazugehörigen Unterseite vom Team!

Oder wenn ich auf einen Menü gehe und die linke Maustaste drücke und sage "in einem neuem Fenster aufmachen ich nicht nur die Unterseite angezeigt bekomme sondern auch das dazugehörige Hauptframe ( "index.html" oder "Cup2006.html")

Wenn du dich fragst was ich eigentlich möchte: Ich möchte z.b. eine Unterseiten direkt ansteurn (z.b.: direkt Link auf die Seite unterseite_team.html) mir die Seite mit dem richtigen Hauptfram angezeigt bekomme. Die Seiten sollte aber nicht immer neu geladen werden.
Ich hoffe du verstehst was ich meine und kannst mir weiterhelfen

mfg Petra

geschrieben von zippy am 06.03.2006 - 17:46
Ich bitte dich: Schick mir doch einfach den Link zu deiner Seite...

Selber tu ich mir auch immer schwer, das offenzulegen, aber in deinem Fall sind ja gar keine scripts involviert. Schick die URl halt per PM.

Wenn du keine Eingabefelder hast, in die man was einfügen kann, musst gar keine Angst haben, dass man deine Site hackt. Zeig uns, was du willst, und irgendwer von uns weiß, wie es geht. In der Javarea gibts 200x tollere Fuzzis, als mich. Wir schaffen das schon...

Nachsatz: Das ZIP ist zwar nett, aber ich müsste die ganzenb gezippten Sites erst mal auf nem Testserver online stellen. Ich hoffe, Du verstehst mein Problem damit.

geschrieben von Galaxis am 06.03.2006 - 21:29
Hallo

Enschuldige, hab dir den Link von der Homepage geschickt wenn du das meinst!!

Petra

geschrieben von Galaxis am 06.03.2006 - 21:54
Vielleicht kann man mein Problem ja auch anders lösen!!
Warum zeigt mir die Adressenlseiste, bei einem Frame, egal welche Seite ich im Frame wechsle mir immer http://www.xyzhompages.at an. Ich möchte bloß auf 1 oder 2 Seiten das er mir in der Adressenleiste den wahren Pfad anzeigt damit ich dann einen direkten Link setzen kann!!

Das gleiche würde ja auch auf das Menü zutreffen!! Wenn ich jetzt mit der linken Maustaste auf einen Menüpunkt klicke und sage "in einem neuem Fenster aufmachen", ich ja nur die Unterseite ohne dem dazugehörigen Hauptframe angezeigt bekomme.
Ich möchte nicht für jede Unterseite ein Frame erstellen was vermutlich einfach wäre aber sehr aufwendig bzw. müßte ich dann imme alle Seiten neu laden was ich auch nicht möchte!!

Kann mann denn nicht irgendwie sagen falls ich im Menü auf die linke Maustaste drücke und in einem neuem Fenster eine Seite aufmache er mir das im Hauptframe mit der dazugehörigen Unterseite darstellen soll.
Oder zumindest prüfen ob ich für diese Unterseite das richtige Hauptframe verwendet wird und falls nicht dorthin wechsel und gleichzeitig die gewünschte Seite angezeigt bekomme.

Ich hoffe du verstehst was ich meine und kannst mir weiterhelfen.


p.s.: hab dir den Link pm geschickt

geschrieben von zippy am 07.03.2006 - 06:00
Dein Problem wurde hier nämlich schon mehrmals gelöst, aber ohne Suche find ichs nicht.

Hinweis für den Admin: Fehlermeldung: Trying to destroy uninizialized session on line 45, dann jede Menge wilder Zeichen.

Deshalb kopier ich dir was aus ner Fremdseite rein:
____________________________________________________________

Frameset nachladen
Script im <head> - Bereich jeder Seite einfügen, Ausnahme ist die Seite, in der das Frameset definiert wird:

<script language="JavaScript">
<!--
var fseite = "index.html";
if (top.location.href.lastIndexOf(fseite)<0)
top.document.location.href="http://www.meine-domain.de/"+fseite+"?"+document.location.href;
//-->
</script>

In diesem Fall ist index.html die Seite, in der das Frameset definiert wird. Ggf. ändern. Sollen zwei Seiten geändert werden, so muss folgendes geschrieben werden:

top.document.location.href="http://www.meine-domain.de/"+fseite+"?" +document.location.href+"&http://www.meine-domain.de/Seite2.htm";

Script im <head> - Bereich der index.html Datei (Frameset-Definitionsdatei) einfügen;

<script language="JavaScript">
<!--
function nachladen() {
if (location.search) {
seite = unescape(location.search.substring(1,location.search.length));
seite1 = top.location.href;
adressen = seite1.split('?');
seite1 = adressen[0];
if (seite.indexOf('www.meine-domain.de') != -1 && seite1 != seite)
self.inhalt.location.href = seite;
}
}
//-->
</script>


Mit der if-Anweisung wird überprüft, ob die übergebene Seite auch von der eigenen Domain ist und auch nicht die Frameset-Definitionsdatei selber. Dies soll verhindern, dass andere Personen ihre Seiten in unser Frameset laden und das sich unsere Seite nicht wieder selbst aufrufen kann. Sollen statt einer gleich zwei Seiten nachgeladen werden, so muß die Funktion nachladen() wie folgt aussehen:

<script language="JavaScript">
<!--
function nachladen() {
if (location.search) {
seite2 = unescape(location.search.substring(1,location.search.length));
adressen = seite2.split('&');
seite = adressen[0];
seite1 = adressen[1];
selbst = top.location.href;
adressen = selbst.split('?');
selbst = = adressen[0];
if (seite.indexOf('www.meine-domain.de') != -1 && selbst != seite && seite1.indexOf('www.meine-domain.de') != -1 && selbst != seite1) {
self.inhalt.location.href = seite;
self.oben.location.href = seite1;
}
}
}
//-->
</script>

___________________________________________________

Die Fram-Namen (inhalt, oben usw.) sowie die Seitennamen musst halt austauschen, dass sie auf deine Seite passen, gegebenenfalls mit dem gesamten Pfad (unterseiten/seitexxxx.html)

geschrieben von weisnix am 07.03.2006 - 07:46
Das ist ja völliger „Capes“!

Wenn du das Frameset mit den Frame und den dazugehörigen Namen richtig aufbaust, dann kann man den Link so setzen, dass er im richtigen Zielfenster auf geht.

Erst wenn man das Sinnvoll auf die Reihe bekommen hat, kann man sich um ein Script kümmern, das Frame ins Frameset lädt.

@Galaxis: Du musst doch nicht zu jedem Frame ein neues Frameset haben.

Framesets und Frames definieren.

geschrieben von Galaxis am 07.03.2006 - 08:36
Hallo Danke für die Infos

ich werd mir das mal genauer unter die Lupe nehmen und meine Seiten überarbeiten und das von zippy mal einarbeiten!

Aber vorerst mal Danke ich melde mich wieder

DANKE

mfg Petra

geschrieben von Galaxis am 07.03.2006 - 18:26
Hallo zippy

ich hab folgendes in die Unterseiten (liegen im Verzeichnis unterseiten/Team.html) inkl. Menü geschrieben:

<script language="JavaScript">
<!--
var fseite = "index.html";
if (top.location.href.lastIndexOf(fseite)<0)
top.document.location.href="http://www.skt-igls.at/"+fseite+"?"+document.location.href;
//-->
</script>

und in die Index.html (die Seite wo ich alle Frames zusammenfasse) eingefügt:

<script language="JavaScript">
<!--
function nachladen() {
if (location.search) {
seite = unescape(location.search.substring(1,location.search.length));
seite1 = top.location.href;
adressen = seite1.split('?');
seite1 = adressen[0];
if (seite.indexOf('www.skt-igls.at') != -1 && seite1 != seite)
self.hauptteil.location.href = seite;
}
}
//-->
</script>

Aber es funktioniert nicht! Was fehlt mir oder was mache ich falsch? Was meinst du eigentlich mit 2 Seiten ändern und nachladen??
zu sehen bzw. zum anschauen unter http://www.skt-igls.at

mfg Petra


geschrieben von zippy am 08.03.2006 - 00:03
Bin jetzt zu müde.Leider.

In der Früh hab ich mangels Suchfunktion einfach ein paar Fremdscripts reingestellt, die aber funktionieren sollten. Zuallererst solltest Du wirklich weisnix Rat folgen und das gesamte Frameset klären. Eventuell könntest Du erwägen, mit Iframes zu arbeiten. Das obere Menueframe sollte auch nicht mit %, sondern mit fixer Größe angegeben werden. Der Igel verschwindet sonst nebst dem Menue, wenn man das Fenster verkleinert.

Was dasLaden mehrerer Frames betrifft: Ein Link kann immer nur ein Frame nachladen, oder das gesamte Frameset. Mit Javascript kannst Du aber auch mehrere Frames gleichzeitig nachladen lassen.

Aber wie gesagt: Erst mal das Frameset in Ordnung bringen, BEVOR wir uns darum kümmern, dass Seiten nicht einzeln aufgerufen werden können. In diesem Frameset müssen erst mal alle Links richtig funktionieren. DANN kann man die zusätzlichen Features einbauen.

Beispiel:

<frameset rows="120,*" cols="*" frameborder="NO" border="0" framespacing="0" scrolling="NO" noresize>
<frame src="menue_oben.html" name="topFrame" scrolling="NO" noresize >
<frameset cols="100,*,100" frameborder="NO" border="0" framespacing="0">
<frame src="links.htm" name="leftFrame" scrolling="NO" noresize>
<frame src="mitte.htm" name="mainFrame">
<frame src="rechts.htm" name="rightFrame" scrolling="NO" noresize>
</frameset>
</frameset>

Natürlich müssten deine passenden Dateien rein.

geschrieben von Galaxis am 08.03.2006 - 07:39
Hallo
Danke für deine Antwort

Ich hab jetzt das ganze Framset überarbeitet waren einige Fehler darin! Danke

Das einzige Problem was ich jetzt habe ist das wenn ich auf die Seite gehe
http://www.skt-igls.at er mir in die Adresszeile gleich folgendes schreibt
http://www.skt-igls.at/index.html?h....tteil.html

egal auf welche Seite ich gehe in der Adresszeile steht immer
http://www.skt-igls.at/index.html?h....tteil.html
Ich vermute das da noch irgendwo hakt bzw. das ganz in der Adresszeile etwas kürzer anzeigen könnte??!! Das man in der mitte das "http://www.skt-igls.at" weglässt!?

Was jetzt funktioniert ist wenn ich auf die Linke Maustaste drücke "In einem neuem Fenster anzeigen" funktioniert!
Das komische dabei ist er schreibt mir zwar immer noch http://www.skt-igls.at/index.html?h....tteil.html
aber beim wechsel der Seite ändert er den hinteren Teil "unterseite_hauptteil.html" immer mit (Was eigentlich von anfang an funktionieren sollte) bzw. ladet er auch sämtliche Frame immer wieder auf´s neu nach beim wechsel der Seite?!!

lg Petra

geschrieben von zippy am 08.03.2006 - 10:18
Um Gottes Willen!

Hab mir das jétzt näher angesehen, und es scheint, als wäre ein Frameset einer anderen Seite einfach durch "Speichern unter" per Explorer, oder was weiß ich, auf die Festplatte gepackt worden und dann verändert...

Womit bearbeitest Du die Seiten?


Ich hab einige Teilseiten und das Frameset dem w3c-Validator gegeben, und der zuckt völlig aus.


Hier ein korrektes Frameset für Deine Seiten. Die Links zu den Unterseiten musst halt eventuell richtigstellen:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>INDEX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<frameset rows="150,30,*" cols="*" frameborder="NO" border="0" framespacing="0">
  <frame src="head.html" name="head" scrolling="NO" noresize >
  <frame src="menueleiste.html" name="menueleiste" scrolling="NO" noresize >
  <frameset cols="140,*,170" frameborder="NO" border="0" framespacing="0">
    <frame src="links.html" name="links" scrolling="NO" noresize>
    <frame src="hauptteil.html" name="hauptteil">
    <frame src="rechts.html" name="rechts"  scrolling="NO" noresize>
  </frameset>
</frameset>
<noframes>
<body>
</body></noframes>
</html>


BEVOR Du das einsetzt, nimmst ALLE Javascripts, die Du gestern in die Einzelseiten gepflanzt hast, wieder raus, damit Du siehst, ob die Links funktionieren, und dann, WENN sie funktionieren, aber nicht vorher, kannst die Nachlader-Scripts wieder einbauen.

Warum steht in der Adresszeile immer diese lange url?

Weil irgendein Link nicht funzt, dadurch das ganze Frameset per Javascript nachgeladen wird, und danach nur noch einzelne Frames nachgeladen werden, deren Adresse man nicht in der Leiste sieht. In der Adresszeile steht nämlich immer nur die Adresse des Framesets, nicht jene der Einzeldateien.

geschrieben von Galaxis am 08.03.2006 - 10:37
Hallo

Ich bearbeite sie mit phase5 und Home Site 5 (Macromedia) wobei mir phase 5 lieber ist!! Meine Freundin hat die meisten Seiten weider mit Home Site 5 erstellt.
Ich werd deinen Rat befolgen mal sehen was rauskommt!!

DANKE

mfg Petra

geschrieben von zippy am 08.03.2006 - 10:49
Phase5 ist ne ganz tolle Sache, find ich.

Das Frameset von oben funktioniert sicher. Ich habs auf nem anderen Server ausprobiert. Was daran nicht stimmt: Die "src"-Angaben in den einzelne Frames.

Empfehlung:
1. Dein "altes" Frameset unter anderem Namen speichern, um es bei Misslingen wieder zur Verfügung zu haben. Noch besser ein Backup der ganzen Seite, bevor man viel ändert.
2. Eventuell die Höhen- und Breitenangaben justieren, damit der Igel ganz sichtbar ist, usw.
3. Bei Deiner Seite keine "%"-Werte für die Frames verwenden. Der Teil oben wird sonst abgeschnitten, wenn man das Fenster verkleinert.
4. Aus der Menueleiste das scrolldown-Menue mit den zwei Klubs entfernen. Die Seite wird sonst so breit, dass sie sich auf vielen Monitoren und den meisten Laptops nicht mehr komplett darstellen lässt. Nicht mal in Vollbild. Der andere Klub ist eh über das Logo ganz oben zu erreichen.
5. Wie schon gesagt: Bevor das Frameset "innerlich" funzt, alle Javascripts von gestern wieder rausnehmen. (aber die Seiten vorher als Backup speichern, damit Du später nicht nochmal die ganze Arbeit hast). Wenn das Frameset dann flutscht, kammas wieder einsetzen. Ist aber wichtig, dass erst das "Skelett" passt, bevor man dran herum modelliert.


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.