Archivlink: javarea.de Forum > JavaScript > Seite in iFrame laden
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Seite in iFrame laden
Pages: [1]
2
... nächste »
... Letzte »
| geschrieben von sobi am 09.03.2006 - 17:32 |
Hi, ich benutz auf meiner neuen Seite
http://www.sobers.de/security-tipp-neu/index.php
eigentlich mein Script hier aus javarea:: Seite in iFrame laden.
Das funzt so gut, ich lade die index.php und die start.php wird in den iFrame geladen. Leider wird die start.php 2x in den Frame gekaden und ich weiss nicht warum.
Can Anybody Help ?? 
CU
Uli |
| geschrieben von sobi am 09.03.2006 - 19:00 |
und mein Counter zeigt an, dass die Seite für den iFrame 2x aufgerufen und geladen wurde.
Im Prinzip stimmt alles, bloss wird die start.php 2x hintereinander geladen. 
cu
uli & manni
http://www.beagleboard.de |
| geschrieben von weisnix am 09.03.2006 - 19:45 |
Vorschlag: Dann würde ich mal das ändern:
so steht es geschrieben.
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
| <script language="javascript" type="text/javascript">
<!--
if (self != top)
top.location.href = self.location.href;
function IFrameStart(){
if (location.search){
var sea = location.search;
var url = sea.substring(1, sea.length);
mainframe.location.href = url;
}
else{
mainframe.location.href = './start.php';
}
}
//-->
</script> |
so sollte es sein.
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
| <script language="javascript" type="text/javascript">
<!--
function IFrameStart(){
if (location.search){
var sea = location.search;
var url = sea.substring(1, sea.length);
mainframe.location.href = url;
}
else{
mainframe.location.href = './start.php';
}
if (self != top)
top.location.href = self.location.href;
}
//-->
</script> |
|
| geschrieben von sobi am 10.03.2006 - 00:54 |
sorry, immer noch das gleiche.
cu
Uli |
| geschrieben von sobi am 11.03.2006 - 11:53 |
oder das selbe Problem ?? Fällt eigentlich nur beim IE ins Auge.Aber:: wenn ich
http://www.sobers.de/security-tipp-....ontakt.php
aufrufe steht danach folgendes in der Adresszeile::
www.sobers.de/security-tipp-neu/index.php?/security-tipp-neu/pages/kontakt.php
Irgendwas scheint da noch durcheinander zu kommen. So als würde die index.php nicht als TOP erkannt.  |
| geschrieben von sobi am 11.03.2006 - 16:53 |
In die Seiten, die in den Frame geladen werden sollen, folgenden Code einfügen:: | HTML-Quelltext | 1:
2:
3:
4:
5:
| <!--
if(top.frames.length <= 0)
top.location.href = './index.php?' + location.pathname;
//-->
</script> |
Mach ich da jetzt auch alles aus Eurer Profisicht richtig ??? Dann korregier ich die Tage das Script hier aus Javara. Das wird nämlich oft geladen.
cu
uli |
| geschrieben von sobi am 11.03.2006 - 17:01 |
Hab das nur lokal nicht gesehen.
Mit IE wird die START.PHP zu Beginn immer 2x geladen, andere Browser machen das Problem nicht.
Ich verzweifle  |
| geschrieben von zippy am 11.03.2006 - 18:38 |
| Zitat | | | Original geschrieben von sobi am 11.03.2006 - 11:53
oder das selbe Problem ?? Fällt eigentlich nur beim IE ins Auge.Aber:: wenn ich
http://www.sobers.de/security-tipp-....ontakt.php
aufrufe steht danach folgendes in der Adresszeile::
www.sobers.de/security-tipp-neu/index.php?/security-tipp-neu/pages/kontakt.php
Irgendwas scheint da noch durcheinander zu kommen. So als würde die index.php nicht als TOP erkannt.  |
Klar steht das in der Adresszeile. Das Javascript in der Kontakt-php ruft doch genau diese Adresse auf, wenn es einzeln (=nicht im Frame) geladen wird. Es wird also
1. Die kontakt.php aufgerufen, die dann
2. Die http://www.sobers.de/security-tipp-....ontakt.php aufruft, die ihrerseits
3. die kontakt.php neuerlich ins Frame lädt, weil diese Anweisung in der url steht.
Die kontakt.php wird bei einer solchen Prozedur also zwei mal aufgerufen.
|
| geschrieben von sobi am 11.03.2006 - 18:41 |
| Zitat | | | Original geschrieben von sobi am 11.03.2006 - 17:01
Mit IE wird die START.PHP zu Beginn immer 2x geladen, andere Browser machen das Problem nicht.
|
Die anderen Seiten werden auch nicht doppelt geladen. Ich blicks nicht. Schau doch mal in den Quellcode. Den von der INDEX.PHP ganz links oder rechts anklicken.
cu
Uli
|
| geschrieben von zippy am 11.03.2006 - 18:53 |
| Ich muss blind sein. Ich finde nicht, wie die IFrameStart() in der index.php ausgelöst/aufgerufen wird. |
| geschrieben von sobi am 12.03.2006 - 00:20 |
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
| <script language="javascript" type="text/javascript">
<!--
function IFrameStart(){
if (location.search){
var sea = location.search;
var url = sea.substring(1, sea.length);
mainframe.location.href = url;
}
else{
mainframe.location.href = './start.php';
}
if (self != top)
top.location.href = self.location.href;
}
//-->
</script> |
das ist der code in der index.php, die seite mit dem iframe. die funktion wird per <body onload....> gestartet.
in allen seiten, die bei einzelaufruf in den iframe geaden werden steht::
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
| <script language="javascript" type="text/javascript">
<!--
if(top.frames.length <= 0)
top.location.href = './index.php?' + location.pathname;
//-->
</script> |
damit funktioniert alles OK, nur beim IE wird beim aufruf der index.php die start.php 2x nacheinander geladen. man siehts am flackern des IE bildschirms. bis auf meinen counter der dahinter steckt eigentlich marginal und die anderen browser machen das problem nicht. aber es nervt.
danke für die mühe
uli |
| geschrieben von sobi am 12.03.2006 - 10:04 |
| Zitat | | | Original geschrieben von zippy am 11.03.2006 - 18:53
Ich muss blind sein. Ich finde nicht, wie die IFrameStart() in der index.php ausgelöst/aufgerufen wird. |
Die Funktion wird in einem Sammel-onLoad in dem JS mit der Bilder Slide Show aufgerufen, weil ich den onLoad nur 1 x ausführen kann.
Sorry, hab ich erst jetzt begriffen was du gemeint hast. ausgeführt wird die Funktion aber wohl
 |
| geschrieben von zippy am 12.03.2006 - 11:33 |

Also, in die ganzen Scripte aus der js-Datei hab ich mich nicht eingegraben.
Vielleicht hilft dir eine Brutal-Methode weiter, mit der ich manchmal zum Erfolg gekommen bin, auch, wenn ich mich vor den Javascript-KönnerInnen hier etwas geniere dafür:
Aus "verdächtigen" Funktionen testweise Elemente entfernen, und schauen, was passiert. Zum Beispiel die Iframestart() kurz NUR mit "mainframe.location.href = './start.php';", und sonst nix.
Ist das Problem noch da? Dann liegts woanders.
Ist es weg? Dann ein weiteres Element (zB die if-Sache) hinzufügen. Auf diese Art die Quelle des Problems einkreisen.
Wie gesagt, trau mich fast nicht, solche Methoden zu empfehlen, weil sie ja zeigen, dass ich die Vernetzung aller beteiligten Kommandos nicht überblicke. Hat aber schon oft geholfen.

Und, weil ich absolut nix von der Doppelladung bemerke: Auch diesen ominösen "Counter" testen. ZB, indem Du nen eigenen Counter in die "Start.php" einbaust, der vorübergehend die Aufrufe mit IP, referer und genauer Zeit zählt.
|
| geschrieben von sobi am 12.03.2006 - 13:39 |
mit der Brutalo Methode bin ich auch noch nicht weiter. Die Doppelladung passiert auch nur im IE, der FF bspw. lädt die Start.PHP nur 1x.
Der Counter ist übrigens mein easy-downloadcounter hier aus javarea. Nach über 300 Downloads hab ich noch keine Meldung, dass der eine Macke hätte.
Ich benutz den ja selbst mehrfach und wie gesagt, FF liefert damit einwandfreie Ergebnisse.
Sehen kann man das Problem, wenn man die Seite zum ersten mal mit dem IE aufruft. Dann flackert der iFrame-Inhalt. Danach ist es weg, auch wenn ich die Seite über Suchen (INTRO) nochmal aufrufe.
Es ist zum Mäuse melken.
Was sagen denn die Spezis zu der Brutalo Methode ??? Hat jemand einen neuen Ansatz vielleicht ???
cu
Uli |
|