WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   wenn link in einen frame gesetzt wird soll das gesamte frameset aufgehen (http://www.wcm.at/forum/showthread.php?t=145121)

jak 22.09.2004 13:55

Dein Script ist wie gesagt dann hilfreich, wenn ein deeplink in einem neuen Fenster kommt, wenn dich wer in seinem Frameset verlinkt hilft's nichts (Macht aber kaum jemand).

<script language="JavaScript">
if (top.location.href != 'index.html')
{ window.location.href = 'index.html?pfad_zur_aktuellen_seite'}
</script>
in index.html ist folgendes:
Code:

<frameset ... >
 <frame name="menue" ... >
 <frame name="inhalt" ... >
</frameset>
<script language="JavaScript">
var param=window.location.search;
if(param != ""){
 //das ? am Anfang entfernen:
 param=param.substring(1,param.length);
 //das Inhalts-frame auf die richtige Seite setzen
 inhalt.location.href=param;
}
</script>

Ich hab's nicht getestet sollte aber funktionieren. Ich bin mir nicht sicher ob man auf das Frame mit inhalt.location zugreifen kann, wenn's nicht funktioniert kannst du's mit frames[x] oder document.getElementsByName("inhalt") probieren.

Jak

Pulse-Seeker 22.09.2004 14:33

Zitat:

Original geschrieben von jak
Dein Script ist wie gesagt dann hilfreich, wenn ein deeplink in einem neuen Fenster kommt, wenn dich wer in seinem Frameset verlinkt hilft's nichts (Macht aber kaum jemand).
gegen eine verlinkung in einem frameset hab mir eh schon ein script geschrieben.
mir gehts nur darum das seiten plötzlich ohne navigation dastehen wenn die unter seiten von suchmaschinen gefunden werden.

ich werd am we eure tipps ausprobieren und dann das ergebnis posten.

Pulse-Seeker 26.09.2004 17:25

@jak

hab jetzt deine tipps ausprobiert, komm aber nicht ganz klar.
es geht zwar das komplette frameset auf aber nicht die unterseite.

code in der unterseite:
Code:

if (top.location.href != 'main.html'){
        document.location.href = 'main.html?besetzung.html';
}

code im frameset
Code:

var param=document.location.search;
 if(param != ""){
 //das ? am Anfang entfernen:
 param=param.substring(1,param.length);
 //das Inhalts-frame auf die richtige Seite setzen
 //document.getElementsByName("inhalt").location.href = param;
 //window.frames['inhalt'].location.href = param;
 window.inhalt.location.href = param;
}

habs im frameset schon mit mit frames[x] und getElementsByName ausprobiert funkt aber auch nicht.

noch irgendwelche tipps?

jak 26.09.2004 19:20

Ich hab's bei mir jetzt so zum laufen gebracht:
Auf den Seiten:
Code:

<script>
if (top.location.href.indexOf('main.html')==-1){
        document.location.href = 'main.html?seite2.html';
}
</script>

Erklärung: location.href ist immer der ganze Pfad. du kannst also entweder überprüfen, ob top.location.href!='http://pfad/seite' oder nachsehen, ob die Seite im String vorkommt (indexOf()).

In der Framedatei:
Code:

<html>
<head>
<script>
function setUrl(){
        var param=document.location.search;
        if(param != ""){
                //das ? am Anfang entfernen:
                param=param.substring(1,param.length);
                document.getElementById('inhalt').src = param;
        }
}
</script>
</head>
<frameset cols="20%,80%" onload="setUrl()">
  <frame name="menue" src="menue.html"></frame>
  <frame name="inhalt" src="inhalt.html" id="inhalt"></frame>
</frameset>
</html>

Der Inhaltsfrrame hat noch die id "inhalt" bekommen, und ich sprech das ganze mit getElementById() und .src an.
Ich hab' das ganze in eine eigene Funktion gesteckt, die aufgerufen wird, wenn die Seite fertig geladen ist (onload). Aus irgendeinem Grund hat's anders nicht funktioniert.

Jak

Pulse-Seeker 26.09.2004 20:26

habs jetzt hinbekommen.

wenn eine unterseite in einem neuen fenster aufgerufen wird dann wird das frameset gleich mit der passenden unterseite geladen.

wenn eine unterseite aber in frame von einer anderen website geöffnet wird, dann öffnet sich mein frameset mit der seite die im frameset als startseite für den inhalts-frame eingestellt hab.

thx für die mühen! :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag