Framset: Seite aus Suchmaschine mit Frameset laden
karlheinz
- javascript
Hallo Leute,
habe ein Problem:
Kommt jemand aus einer Suchmaschine auf meine Seite, so möchte ich, dass diese mit dem Frameset angezeigt wird.
if (top.location == self.location) {
top.location = '../../index.htm'
}
Mit dieser Geschichte erhält der Besucher die Hauptseite. Index.htm enthält das Frameset.
if (top.location == self.location) {
top.location = '../../index.htm?irgendwas.html'
}
Hier sollte doch nun die Seite, die der Besucher anklickt mit dem Frameset kommen, oder?
Ist aber nicht. Kann mir hierzu jemand helfen?
Gruss
Karlheinz
Moin Moin !
Du weist einem Objekt einen String zu. Das funktioniert bestenfalls zufällig. Du willst die href-Eigenschaft ändern. Lies SelfHTML für mehr Details.
Alexander
Hi,
Du weist einem Objekt einen String zu. Das funktioniert bestenfalls zufällig. Du willst die href-Eigenschaft ändern. Lies SelfHTML für mehr Details.
Es geht aber!
wenn man sich window.location ausgeben lässt, steht da nicht etwas
[object Location] oder so... sondern der href-Wert!
Gruß
Christian
Moin Moin !
Es geht aber!
Es funktioniert zufällig in diversen Browsern, weil diese Browser Fehlerkorrekturmechanismen für blöde Javascript-Kopierer eingebaut haben.
Der Weg über href funktioniert immer.
Warum soll man mutwillig fehlerhaften Code schreiben?
Alexander
Hi,
if (top.location == self.location) {
top.location = '../../index.htm?irgendwas.html'
}Hier sollte doch nun die Seite, die der Besucher anklickt mit dem Frameset kommen, oder?
kann ja auch nicht. wenn dann müsste es so heißen:
index.php?seite=irgendwas.html
du brauchst dazu PHP code in der index:
<?php
echo "<frame src="$seite">";
?>
so ungefähr...
Christian
Hallo Karlheinz,
damit der Besucher die richtige Unterseite im Fenster bekommt, musst du natürlich in deiner Rahmenseite dafür sorgen, dass das Fenster auch damit aufgerufen wird.
Schritt 1: In der Unterseite prüfst du, ob sie unter dem richtigen Fensternamen, den du ja im Rahmensystem definierst, aufgerufen wird.
Ist das nicht der Fall, rufst du dein Rahmensystem:
top.location.href = "rahmen.html?unterseite.html";
Schritt 2:
Dein Rahmensystem extrahiert den Parameter und definiert seine Fenster in Javascript:
var Ziel = location.search;
Ziel = (Ziel != "") ? slice (Ziel, 1) : "startseite.html";
document.write ('<frame src="' + Ziel + '" ... >');
Ich benutze diese Technik seit langem, es funktioniert perfekt.
Gruß
Manfred
Hallo Leute,
habe ein Problem:
Kommt jemand aus einer Suchmaschine auf meine Seite, so möchte ich, dass diese mit dem Frameset angezeigt wird.if (top.location == self.location) {
top.location = '../../index.htm'
}Mit dieser Geschichte erhält der Besucher die Hauptseite. Index.htm enthält das Frameset.
if (top.location == self.location) {
top.location = '../../index.htm?irgendwas.html'
}Hier sollte doch nun die Seite, die der Besucher anklickt mit dem Frameset kommen, oder?
Ist aber nicht. Kann mir hierzu jemand helfen?
Gruss
Karlheinz
Moin Moin !
Ich benutze diese Technik seit langem, es funktioniert perfekt.
Naja, wenn man einen halbwegs aktuellen Browser mit eingeschaltetem Javascript benutzt. Ohne JS passiert GAR NICHTS. Das halte ich nicht für "perfekt".
Das Problem läßt sich "perfekt" nur serverseitig lösen, z.B. mit PHP, ASP, JSP, mod_perl, CGI, oder anderen Techniken.
Alexander
Hallo Manfred,
document.write ('<frame src="' + Ziel + '" ... >');
Ich benutze diese Technik seit langem, es funktioniert perfekt.
danke, ich werde dies heute Abend gleich mal versuchen.
Gruss
Karlheinz