PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [HTML/CSS/JS] [JS] Frame mit Javascript cheken



bulli
09.01.2009, 17:47
Hi,

ich habe auf meiner Seite ein Frameset, im Topframe ädert sich die Seite nach X Sekunden, also es wird auf eine andere Seite weitergeleitet.
Ich will jetzt mit einem JavaScript jetzt testen, wann sich die Seite im ersten Frame geändert hat udn da möchte ich dann eine Funktion ausführen lassen.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<frameset rows="60,*" border="0">
<frame name="topframe" src="seite1.php?value1=34268322387" scrolling="no" frameborder="0">
<frame name="frame" src="seite2.php?value1=34268322387" frameborder="0">
</frameset>
</body>
</html>


Hat jemand eine Idee?

Sebmaster
09.01.2009, 17:51
Zwei Eigenschaften die dur dir anschauen solltest:

onUnload bzw. onLoad.

Falls es nicht so wichtig ist, wann die neue Site wirklich geladen ist, kannst du onUnload verwenden, ansonsten muss eine Kombination her, oder du ignorierst den ersten Call der Funktion.

Mfg
Sebmaster

bulli
09.01.2009, 18:19
So, ich habs malk so versucht, aber so hats nicht funktioniert.

<script language="JavaScript">
if (parent.topframe.location != 'seite1.php?value1=34268322387') {
blabla();
}
</script>

Dann versuch ichs einfach mal mit onUnload bzw. onLoad.

Sebmaster
09.01.2009, 18:24
So, ich habs malk so versucht, aber so hats nicht funktioniert.

<script language="JavaScript">
if (parent.topframe.location != 'seite1.php?value1=34268322387') {
blabla();
}
</script>Dann versuch ichs einfach mal mit onUnload bzw. onLoad.

Wo willst du das JavaScript überhaupt einbauen? Im unteren frame, oder im Frameset?

bulli
09.01.2009, 18:25
Auf die Seiten, mit dem Frameset, also in den HTML Code, den ich oben gepostet hab, da soll das rein.

Sebmaster
09.01.2009, 18:28
Auf die Seiten, mit dem Frameset, also in den HTML Code, den ich oben gepostet hab, da soll das rein.

Okay, dann sollte es mit onLoad und onUnload gehen:wink:

bulli
09.01.2009, 21:42
Kannst du mir da noch nen Tipp geben wie ich das grob realisiern kann, ich bin kenjn mich mit JAvascript nicht gut aus.

Sebmaster
09.01.2009, 21:51
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="JavaScript">
function doIt() {
blabla();
}
</script>
</head>

<frameset rows="60,*" border="0">
<frame name="topframe" src="seite1.php?value1=34268322387" scrolling="no" frameborder="0" onUnload="doIt()">
<frame name="frame" src="seite2.php?value1=34268322387" frameborder="0">
</frameset>
</body>
</html>


Ungetestet, sollte aber funktionieren...

Worka
10.01.2009, 02:15
@Sebmaster
Gehört doch kein Body ins Frameset. :smile:
Aber sollte trotzdem funktionieren.

Sebmaster
10.01.2009, 19:16
@Sebmaster
Gehört doch kein Body ins Frameset. :smile:
Aber sollte trotzdem funktionieren.

Ich hab doch keinen Body reingemacht:biggrin1:

Abgesehn davon wird kein Body begonnen, höchstens ein nicht vorhandener geschlossen:yes:

bulli
10.01.2009, 19:54
Funktioiert leider nicht so einfach, wie ihr euch das gedacht habt.

Die seite nue Seite wird zwar im oberen Framegeladen, aber im Quelltext von der gesamten Frameseite, wird immer noch der alte Link zur seite aus dem oberen Frame der Seite angezeigt und nicht die neue.

Leider funktioniert das noch nicht.

Sebmaster
10.01.2009, 20:00
Die seite nue Seite wird zwar im oberen Framegeladen, aber im Quelltext von der gesamten Frameseite, wird immer noch der alte Link zur seite aus dem oberen Frame der Seite angezeigt und nicht die neue.

Ich verstehs nicht :der:

Neue Erklärung bitte:rolleyes:

bulli
11.01.2009, 13:45
Okay, dann versuch ich jetzt etwas bildhafter zu sprechen ;-)

http://www.vms1.de/thumbs/js5d8.png (http://www.vms1.de/?img=js5d8.png)

Also in diesem Frameset leitet der Frame abuse nach X Sekunden auf eine andere Seite weiter, diese Änderungen werden aber leider nicht im Quelltext der Framedatei (also der Datei im Bild oben) geändert, so wird nach der Weiterleitung immer noch der selbe Link angezeigt. Aufgrund dieser Tatsache vermute ich, dass die onunload Funktion nicht greift und daher die self.close Funktion nicht ausgeführt werden kann.

Ich hoffe, es ist nun verständlich, wenn nicht, dann kann ich es ja nochmal veruchen zu erkären ;-)

Sebmaster
11.01.2009, 13:58
Ähm... Versuchst du damit den Frame zu schliessen, oder das ganze Fenster?:suspicious:

bulli
11.01.2009, 14:35
Ich möchte damit das ganze Fenster schließen.

Sebmaster
11.01.2009, 15:10
Hmm...

So eben gesehen, frame hat überhaupt kein onUnload:frusty:

Besser wäre es da direkt in der topframe_forced ein "top.close()" reinzuschmeissen, sofern möglich...

bulli
11.01.2009, 15:19
Sebmaster du bict doch ein Scahtz, wenn ich das mal so sagen darf, es funktioniert mit top.close() einwandfrei. Danke

Sebmaster
11.01.2009, 15:20
Sebmaster du bict doch ein Scahtz, wenn ich das mal so sagen darf, es funktioniert mit top.close() einwandfrei. Danke

Tja, nach einer irreführenden Fährte muss ja auch mal was anständiges kommen:biggrin1:

Hab ich gerne gemacht:yes:

Mfg
Sebmaster