PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe: Javascript und Zugriff auf Frames


Onlinejunky
2007-02-10, 16:06:40
Hallo Leute,

ich hoffe es gibt in diesem Forum jemand, der mir weiterhelfen kann. Zumindest hat es keiner fertig gebracht im phpforum eine einfache Lösung darzustellen.

Also folgender Problemfall:

Ich habe eine Website mit 3 Frames. Es ändert sich eigentlich immer nur der Main Frame. Jetzt gibt es aber den ein oder anderen Link, bei dem das Top Frame und das Menü Frame durch ein anderes ersetzt wird.

Das konnte ich mit folgendem Code realisieren:


<script language="JavaScript">
<!--
function start()
{
parent.top.location "/nachhilfeplus/nachhilfeplus_top.htm";
parent.main.location "/nachhilfeplus/mathematik/gymnasium_allgemein/klasse12_13/abitur/matheabitur.htm'";
parent.menue.location "/nachhilfeplus/nachhilfeplus_menue.htm";
}

--></script>

Wenn man aber jetzt im Browser auf Zurück klickt ändert sich jedes einzelne Frame mit einem Klick. Ich will aber das sich dann wieder alles auf einmal ändert. Das praktisch mit einem Klick auf Zurück, sich das Top,Menü und Main Frame zurückverwandelt. Jetzt wurde mir gesagt ich soll es mit "replace" versuchen. Also so:

parent.top.location.replace('/nachhilfeplus/nachhilfeplus_top.htm');

Das Problem ist nur, dass es jetzt wie die Funktion schon sagt, ersetzt wird. Die anderen Frames werden reingeladen aber die alten verschwinden aus der History, d.h. es ist gar nicht möglich mit dem Zurück Button des Browser wieder die vorgerigen Frames anzeigen zu lassen.

Wie löse ich jetzt diese Problem? Hier nochmal ganz unkompliziert formuliert.


TOP 1, Menü 1, Main 1 ---> klick auf Link -----> TOP2, Menü 2, Main 2----> klick auf zurück Button des Browser----->TOP 1, Menü 1, Main 1


So versteht es wohl jeder, hoffe ich mal.


Thx

Gruß

darph
2007-02-10, 17:03:57
Das Problem kriegst du so nicht gelöst. Zurück ist immer Seite für Seite. Alles Andere macht dich nur unglücklich und wird irgendwann dazu führen, daß seine Seite für Leute ohne JavaScript gar nicht mehr funktioniert.

Tu dir selbst den Gefallen und verzichte auf Frames (ja, ich weiß, das willst du nicht hören). Ein paar dynamische Menüs lassen sich mit PHP-includes auch ohne Programmierkenntnisse sehr leicht implementieren. Das wird auf jeden Fall weniger Aufwand involvieren, als eine komplexe JavaScript-Anwendung, die überwacht, wo du warst und wo du bist und das dann auf deine Menüs überträgt. Das zu pflegen dürfte eine mittlere Katastrophe werden.

Dann freut sich übrigens auch Google.

Onlinejunky
2007-02-12, 18:21:53
Hi,

danke für die Antwort. Könntest du mir nicht trotzdem ein Script vorlegen mit dem ich das so realisieren könnte? Ob wir es dann einbinden ist ja egal aber ich würde trotzdem gerne wissen wie das geht. :uconf2: :uidea:


thx

mfg

darph
2007-02-12, 18:39:14
Wieviel zahlst du mir denn, damit ich dir sowas schreibe? :usweet:

Onlinejunky
2007-02-12, 21:44:21
Hmm, gute Frage. Ich dachte da an eine gute Tat. Es ist eine Seite für Schüler, die Probleme habe(Mathe) und auch eine Anlaufstelle für Eltern Lehrer usw.

Ist es denn ein sehr großer Act?


Mfg

darph
2007-02-13, 14:21:45
Ist es. Glaub mir. Jede Seite in deinem Hauptfenster muß erkennen, welche sie ist, muß wissen, welche Seiten zu ihr gehören und die dann entsprechend laden. Spätestens wenn du ein paar neue Seiten einfügst, arbeitest du dich doof. Und wenn auch nur ein Besucher JavaScript deaktiviert hat, ist alles vorbei - der kann die Seite quasi nicht nutzen.

Da ist es doch deutlich einfacher, includes zu nutzen.

<html><body>
<div id="head"><?php include("oberesmenu.html"); ?></div>
<div id="seite"><?php include("linkesmenufuerseitex.html"); ?>/div>
<div id="text"><p>hullow!</p></div>
</body>
</html>

JavaScript kann dazu genutzt werden, eine Seite aufzumotzen. Aber mit JS Kernfunktionalität zu realisieren, ist gefährlich.


Besser wäre es natürlich noch, wenn du eine Art CMS nutzt, dann mußt du dir auch keine Sorgen darüber machen, ob du nicht irgendwo vergessen hast, einen Link einzufügen.


Heutzutage Frames zu verwenden, bringt eigentlich nur Nachteile mit sich. Ein wichtiger ist: Google und alle anderen Suchmaschinen können die Seite nicht durchsuchen.

Onlinejunky
2007-02-13, 15:45:52
Hi, vielen Dank.

Wenn ich das richtig verstanden habe, muss ich nur dieses PHP code in der Seite einfügen, die ich öffnen will. Überschreibt er dann einfach die anderen Top und Menü Frames?

Mfg

darph
2007-02-13, 15:58:12
Hi, vielen Dank.

Wenn ich das richtig verstanden habe, muss ich nur dieses PHP code in der Seite einfügen, die ich öffnen will. Überschreibt er dann einfach die anderen Top und Menü Frames?

Mfg
Nein. Du mußt dein Konzept schon umstellen.

PHP includes funktionieren so: Das, was in der angegebenen Seite steht, wird eingefügt. Wenn du das so machst, hast und brauchst du keine Frames mehr. Für den Betrachter sieht es aus, wie eine Seite.

Beispiel: Du hast drei Seiten. Eine Index-Seite (da steht "hallo"), eine über Männer (Männer sind doof), eine über Frauen (Frauen sind doof). Du möchtest auf jeder Seite ein Menü einbinden, von der du jede andere Seite besuchen kannst. Dieses Menü packst du in eine extra HTML Datei, die wir "links.html" nennen.

Also:
links.html

<ul>
<li><a href="index.php">Index</a></li>
<li><a href="men.php">Männer</a></li>
<li><a href="women.php">Frauen</a></li>
</ul>
Das ist ja das, was in deinem Top-Frame stehen würde. ;)

Jetzt also die index.php

<html>
<body>
<?php include("links.html"); ?>

<!-- Das ist der Inhalt: -->
<h1>Servus Gruezi und Hallo</h1>
<p>Lorem Ipsum unzo</p>
</body>
</html>



men.php

<html>
<body>
<?php include("links.html"); ?>

<!-- Das ist der Inhalt: -->
<h1>Männer sind Schweine</h1>
<p>und denken nur an das eine</p>
</body>
</html>


women.php

<html>
<body>
<?php include("links.html"); ?>

<!-- Das ist der Inhalt: -->
<h1>Klaus steht vor Gabi, wird vor Verlegenheit rot</h1>
<p>doch sie sagt kühl nur "Hau ab, du Idiot!"</p>
</body>
</html>




Für den Betrachter kommt dann Folgendes an:


<html>
<body>
<ul>
<li><a href="index.php">Index</a></li>
<li><a href="men.php">Männer</a></li>
<li><a href="women.php">Frauen</a></li>
</ul>

<!-- Das ist der Inhalt: -->
<h1>Servus Gruezi und Hallo</h1>
<p>Lorem Ipsum unzo</p>
</body>
</html>


Verstehst du? Keine Frames. Kein Problem mit "Zurück". Und wenn du neue Seiten hinzufügst, mußt du die Linkliste nur an einer Stelle aktualisieren. Du mußt halt nur drauf achten, daß dein Webspace PHP kann.

moeb1us
2007-02-13, 16:12:09
das war deine gute tat für heute, darph :D sehr schön erklärt

Onlinejunky
2007-02-13, 21:19:34
Oh ja, vielen Dank!!!!

Endlich mal einfach und praktisch erklärt. Mein Webspace kann PHP. Wir werden die komplette Website nach diesem Schema umbauen. :-)


Thx

Mfg