Frames und Verweise

Indi

Member of Honour
Folgende Ausgangsposition:

Eine Website mit 3 Frames.
Frame Nr. 1 dient als Menü
Frame Nr. 2 dient zur Anzeige des Hauptinhaltes
Frame Nr. 3 dient nebenbei zur Anzeige der Sponsoren und des Copyrights

Wenn ich in Frame Nr. 1 einen Link habe geb ich mit target="Frame2" an, dass er mir den Inhalt im Frame Nr. 2 anzeigt. Ist ja logisch.

Was aber, wenn ich ich im Frame Nr. 1 mit der Maus einen Rechts-Klick auf einen solchen Verweis mache und die Option "Im Neuen Fenster öffnen" wähle? Tja, es öffnet sich ein neues Fenster, aber nur mit dem Inhalt, der normalerweise im Frame Nr. 2 angezeigt wird.

Wie funktioniert es also, dass wenn ich einen Rechtsklick mache, sich das Fenster öffnet und alle 3 Frames angezeigt werden, wobei Frame Nr. 1 und Frame Nr. 3 immer den gleichen Inhalt haben, Frame Nr. 2 aber jedesmal einen anderen.

Verstanden? Ich hoffe schon.

Danke im voraus

Indi
 
...und wenn Du die Verweise in Java oder Flash machst? Da läuft das mit dem Rechtsklick so nicht.
 
Die lösung ist relativ einfach, nur leider kann ich kein JavaScript, deshalb kann ich dir die Lösung ywar sagen, aber programmiertechnisch im moment nicht umsetzen

Du hast in frame 1 und 3 PARENT Frames, du musst nur ein script schrieben, welches guckt, ob Parents vorhanden sind, fals net, muss er sie eben bauen!

P.S: ich würds ohne frames mit PHP machen. ist einfach schnell sicher und modern :)

da kann ich dir dann auch helfen *g*
 
Hm Indi, so wie du das vorhast, geht das mit Frames nicht. Was willst du denn eigentlich genau machen?
Wozu soll ein Rechtsklick sein?
 
Wozu der Rechtsklick ist? Den hab ja ich garnicht erfunden. :-)
Den Rechtsklick hast du überall bei Grafiken oder Verweisen und solchen Sachen.
Wenn jetzt einer auf einen solchen Link bei Rechts-Klick auf "Im neuen Fenster öffnen ..." geht, dann möchte ich, dass er mir nicht nur den Inhalt des einen Frames anzeigt (wie normal) sondern einfach alle drei Frames und in dem mittleren, wo immer der Inhalt ist, das dementsprechende HTML-File.

cu
 
kl. Vorschlag:
mach 3 frames und in jeden frame legst du keine html, sondern ein flash movie ...
oder lass die 3 frames weg und machs gleich komplett mir flash ... rechtsklick ist hierbei (bis auf nen verweis zu macromedia) deaktiviert ...


scott

nachtrag:
sorry indi, hab des oben wohl überlesen ...
 
Das mit Flash wurde oben schon einmal angesprochen und ist in meinem Fall leider nicht brauchbar.
 
Code:
<script language=\"JavaScript\">
// Script by boppy (for [URL]www.hackerboard.de[/URL])
// Copyright (c) 2001 Boppy
if (window.Event) 
document.captureEvents(Event.MOUSEUP); 
function nocontextmenu()  
{
event.cancelBubble = true
event.returnValue = false;
return false;
}
function norightclick(e)	
{
if (window.Event)	
{
if (e.which == 2 || e.which == 3)
return false;
}
else
if (event.button == 2 || event.button == 3)
{
event.cancelBubble = true
event.returnValue = false;
return false;
}	
}
document.oncontextmenu = nocontextmenu;		
document.onmousedown = norightclick;
</script>

das ist die JS lösung zum Rechtsklick prob... zu deinen Frames hab ich niX. Kommt aber auch noch. Wenn du beim rechtsklick n Menu willst, sag bescheit. hab noch irgendwo DHTML-Lösung für son shit! :)

So, das Script setzt nicht nur Mouse-Rechtsklick außer gefecht sondern macht es auch nicht mehr möglich mit der Tastatur "rechts" zu klicken (Kontextmenu) :P

hAVE pHUNN
 
shit :) *SichSelbstAufDenKopfHau*

da hab ich wohl wieder alles nur überflogen *g*

aber das kann man ja immer mal gebrauchen... :P
 
; )
ich habe indi prob verstanden weiß auch wie es zu lösen sein müßt
werde mal nen test framset erstellen um zu gucken ob es so klappt OK ?
 
Ich hab hier auch mal nen Vorschlag zu machen. Ich hoffe, dass ich dich richtig verstanden haben Indi...

Das hier ist die Hauptseite:

<html>
<head>
<script language="javascript">

a = window.location.search;
if (a != "") {
b = a.split("?");
c = b[1]

link = "<frameset rows=100,*,100><frame src=head.htm name=head><frame src=" + c + " name=main><frame src=bottom.htm name=bottom></frameset>";
}
else {
link = "<frameset rows=100,*,100><frame src=head.htm name=head><frame src=main.htm name=main><frame src=bottom.htm name=bottom></frameset>";
}
</script>
</head>

<script language="javascript">
<!--
document.write(link);
// -->
</script>

</html>


Die Seite prüft bei jedem laden, ob ein Anhang an die URL der Seite, getrennt durch ein "?", erfolgte.
Wenn ja, splittet er noch das ? ab und speichert Arrays unter die Variable "b" ab.
Dann wird die Variable "c" mit dem Text der hinter dem "?" steht belegt.

Der Link in Frame "head" müßte also so aussehen:

<a href="Hauptseite.htm?Neuanzuzeigende_main_Seite.htm" target="_top">link</a>

Hier würde also dann unter c "Neuanzuzeigende_main_Seite.htm" abgespeichert werden, also der Name der URl der Neuen "Main" Seite.

Der Rest erklärt sich denk ich von selbst.

Für Fragen, wenn du welche hast, steh ich natürlich gerne offen. War auch gar nicht so einfach auf diese Art von Lösung zu kommen. Doch trotzdem hab ich ne halbe Stunde meines kostbaren 18. Geburtstages heute geopfert ;).
Ich hoffe deshalb, dass die Lösung dir hilft.
Wenn was nicht funktioniert, poste nochmal.

Mit freundlichen Grüßen Thomas!
 
klar

als script kann man das garnet wirklich bezeichnen

soeine Überprüfung wurde mir eh von ein paar im IRC vorgeschlagen.

if (parent.frames.length == 0)
{
document.open();
document.write('<html><head></head>');
document.write('<frameset rows=\"160,*,25\" frameborder=0 framespacing=0 border=0>');
document.write('<frame src=\"oben.html\" name=\"Oben\">');
document.write('<frame src=\"unten.html\" name=\"Unten\" marginwidth=0 marginheight=5 scrolling=no>');
document.write('</frameset>');
document.write('<body></body></html>');
document.close();

parent.Mitte.location = "blup.html";
}
 
Zurück
Oben