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)

Pulse-Seeker 18.09.2004 17:14

wenn link in einen frame gesetzt wird soll das gesamte frameset aufgehen
 
steht eh schon alles im titel!
ist so was machbar? falls ja dann bitte tipps wie!

PzAB9_1 19.09.2004 07:52

Hi,

ich denke jetzt schon einige Zeit über deine Frage nach, aber ich versteh sie nicht sorry :( :confused:
Wenn's jemand verstanden hat bitte um Aufklärung.

Das Frameset verlinkst du genauso wie z.B. von der Begrüssungsseite zur Hauptseite.

a href="frameset.htm"

Nur gibst du im Link selbst noch das Ziel an !

a href="frameset.htm" target="frame name" ... oder neues Fenster

Hier noch ein Link zum schmökern:

http://de.selfhtml.org/html/frames/d...tm#allgemeines


mfg
PzAB9_1

Sesa_Mina 19.09.2004 08:49

Ich denke mal eher dass er sich vor Fremdverlinkungen (a.k.a Deep Links) schützen will.

Sprich: Wenn eine andere Webseite seine Seiten einbindet, dann soll dort dann automatisch das korrekte Frameset nachgeladen werden und somit die andere Seite "rausgeschmissen" werden.

Pulse-Seeker 19.09.2004 10:24

Zitat:

Original geschrieben von Sesa_Mina
Ich denke mal eher dass er sich vor Fremdverlinkungen (a.k.a Deep Links) schützen will.

Sprich: Wenn eine andere Webseite seine Seiten einbindet, dann soll dort dann automatisch das korrekte Frameset nachgeladen werden und somit die andere Seite "rausgeschmissen" werden.

genau das hab ich gemeint. sorry daß ich mich etwas ungenau ausgedrückt hab.
gibts eine möglichkeit sowas zu bewerkstelligen?:confused:

Noerf 19.09.2004 11:39

Müsste dann sowas in diese Richtung sein:

http://www.begin-end.de/include/javabeispiel9.htm

PzAB9_1 19.09.2004 12:51

Und wieder was dazugelernt :)

Allerdings stellt sich mir da die Frage in welches Dokument das Script eingefügt wird ? (wird auf der Seite leider nicht beschrieben)

Nur ins Frameset oder gleich in die Hauptseite ?

jak 19.09.2004 15:13

Das Funktioniert nur bei Seiten ohne Frames. Das Skript überprüft, ob die aktuelle Seite == die Seite die an erster Stelle in der Hierarchie steht ist.
Wenn du das also verwenden willst um dich gegen deeplinks zu schützen, müsstest du's auf jeder Inhaltsseite einfügen. Das würde aber dazu führen, das dein eigenes Frameset mit der Inhaltsseite überschrieben wird.

Alternativen:
1.) Keine Frames verwenden
2.) Überprüfen, ob top.location.href==frameset.html wenn nicht wird das auf frameset.html gestellt. Nachteil: Bei einem Deeplink wird man auf die Startseite zurückgeschickt.
3.) Wie 2.) aber man hat in der Datei, in der der Framset gespeichert ist ein JS, das die richtige Seite einstellt.
3.) könnte mit einer Eigenschaft von location funktionieren: window.location.search.
Wie musst du selbst ausknobeln.

Jak

Pulse-Seeker 19.09.2004 23:55

@jak

frames lassen sich aus designtechnischen gründen nicht vermeiden.

ich werd mal die oben genannten möglichkeiten durchprobieren. da die website aber eh nicht sehr groß wird (max. 10 seiten), is es eh net so schlimm wenn deeplinks nicht funktionieren.

PzAB9_1 20.09.2004 07:04

Zitat:

Original geschrieben von jak
Das Funktioniert nur bei Seiten ohne Frames. Das Skript überprüft, ob die aktuelle Seite == die Seite die an erster Stelle in der Hierarchie steht ist.
Wenn du das also verwenden willst um dich gegen deeplinks zu schützen, müsstest du's auf jeder Inhaltsseite einfügen. Das würde aber dazu führen, das dein eigenes Frameset mit der Inhaltsseite überschrieben wird.

Alternativen:
1.) Keine Frames verwenden
2.) Überprüfen, ob top.location.href==frameset.html wenn nicht wird das auf frameset.html gestellt. Nachteil: Bei einem Deeplink wird man auf die Startseite zurückgeschickt.
3.) Wie 2.) aber man hat in der Datei, in der der Framset gespeichert ist ein JS, das die richtige Seite einstellt.
3.) könnte mit einer Eigenschaft von location funktionieren: window.location.search.
Wie musst du selbst ausknobeln.

Jak

Hmmm .... werd mir das mal anschaun.

Besten Dank für den Tip :)


mfg
PzAB9_1

catch17 22.09.2004 13:15

also bei mir wird das so erledigt:

-------------------
<script>
if (parent.location.href == self.location.href)
{ window.location.href = 'index.html'}
</script>

-------------------

wobei "index.html" die seite mit frameset ist...

lg,

nachtrag: script in head-bereich auf jeder seite der website einfügen... (ich habs gebraucht damit nicht "hauptseiten", die von suchmaschinen indiziert wurden auf einmal ohne navigation, Logo,... auftauchen wenn sie gefunden werden...)

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 17:02 Uhr.

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