Forum
Tipps
News
Menu-Icon

Frame überwachen

Hallo Leute!

Ich würde gern einen Frame überwachen das ich also 2 Frames habe! Wenn in dem oberen Frame ein Klick ausgeführt wird dann ändert sich der Text im unteren Frame.
Weiß jemand, wie man sowas realisieren kann?


Antworten zu Frame überwachen:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Du bräuchtest eine Kombination von mehreren JavaScript-Mechanismen. Wichtig ist erst einmal, dass du Zugriff auf die einzelnen Frames bekommst. Wie das geht, steht in diesem Beipsiel:

http://de.selfhtml.org/javascript/beispiele/zweiframes.htm

Alles weitere machst du über simples Event-Handling.

greez 8)
JoSsiF

Das ist dann klar aber wie kann ich jetzt den Klick abfragen und dann unten einen neuen Text ausgeben?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Event-Handling: onClick="machwas()"

...und in der Funktion machwas() steht dann z.B. document.getElementById("einElement").InnerHTML = "der neue Text";

So in dieser Richtung :)

greez 8)
JoSsiF

Also hab die Seite mal online http://www.zinsmailer.de/frame/
nun soll wenn ich einen Link in der AOL Seite klicke im unteren Frame ein Text erscheinen.

Mein derzeitiger Quellcode

index.htm

 

Zitat
<html>
<head>
<title>
Test
</test>
</head>
<frameset rows="*,30%">
<frame src="http://www.aol.de" name="oberesFenster">
<frame src="unten.htm" name="unteresFenster">
</frameset><noframes></noframes>
</html>

unten.htm

 
Zitat
<html><head><title>Test</title>
<script type="text/javascript">
parent.oberesFenster.onClick="machwas()"
document.getElementById("einElement").InnerHTML = "der neue Text";
</script>
</body></html>

Wie muss ich es jetzt noch ändern?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi,

du brauchst noch den aufruf über einen Link:

 

<html><head><title>Test</title>
<script type="text/javascript">
parent.oberesFenster.onClick="machwas()"
document.getElementById("einElement").InnerHTML = "der neue Text";
</script>
</head>
<body>
<a href="javascript:machwas()"> Klick! </a>
</body></html>

Bonsai
« Letzte Änderung: 17.12.06, 13:51:25 von Bonsai »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ähm...das war Beispielcode! Man muss kein ausgesprochener Experte sein, um das zu erkennen:

- Es wird wird die Funktion "machwas()" aufgerufen. Nunja, die sollte auch irgendwo mal definiert werden.

- Selbes Spiel mit "einElement". Der Name ist natürlich frei wählbar, aber ein Element mit diesem Namen muss freilich auch existieren, sonst passiert rein gar nichts.

greez 8)
JoSsiF

Ich glaub das funktioniert so nicht. Da ich ja im oberen Fenster nicht sowas

<a href="javascript:machwas()">

aufrufen kann. Das ist ja eine externe Seite bei der ich prüfen will ob geklickt wird

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Vieleicht könntest du es so machen, dass du periodisch im unteren Frame die derzeitige URL der im oberen Frame angezeigten Seite abfragst.

Sobald die sich ändert, kannst du dann entsprechend reagieren.

Das ist auch eine sehr gute Idee kannst mir das machen, da ich eigentlich noch keine Ahnung von javascript haben.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Die Funktione sollte denke ich ungefär so aussehen:


var alteAdresse = '';
var neueAdresse = '';

function blub()
{
  neueAdresse = parent.oberesFenster.location.href;
  if (neueAdresse != alteAdresse)
  {
    //tue irgendwas
    //...
  }
  alteAdresse = neueAdresse;
  setTimeout("blub()",500);
}

Dann schreibst du bei deiner unten.htm (der JavaScript-Code kommt auch da rein) noch folgendes beim Body:
<body onLoad="blub()">
« Letzte Änderung: 19.12.06, 19:53:55 von mati »

Wo und wie muss ich dann denn Text hinschreiben, der gezeigt werden soll
?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Erstelle dir in unten.htm irgend ein Element wo du den Text reinschreiben willst, z.B. ein DIV-Block und gib ihm eine ID:

<DIV id="anzeige">Hallo Welt</DIV>

Du kannst in JavaScript dann folgendermaßen da drauf zugreifen:
document.getElementById("anzeige")

Du willst ja jetzt den Inhalt dieses DIV-Objektes ändern.
Die einfachste aber nicht standardkonforme Methode ist folgende:

document.getElementById("anzeige").innerHTML = 'Ich bin ein Text';
Das ist ne Microsoft-Erfindung, wird glaube ich aber von allen gängigen Browsern unterstützt.

Die eigentlich richtige Lösung ist, dass du zunächst ein neues Text-Node Objekt erzeugst und dann das alte Text-Node-Objekt unter deinem DIV mit dem neuen erstzt. Weiß ich aber grade nicht mehr auswendig wie das genau ging (vieleicht weiß das ja sonst wer hier). Du kannst ja zunächst mit innerHTML arbeiten.

So wie es jetzt ist wird der Text sofort geändert ohne das ich irgenwas geklickt habe.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ja ich weiß, das liegt daran, dass die Variable alteAdresse mit dem leeren String ('') initialisiert wird.

Und der ist nunmal direkt ungleich der Adresse der im oberen Frame angezeigten Website.

Wenn du jetzt nur machen willst, dass zuerst Text A und bei nem Klick auf nen Link dann Text B angezeigt wird, kannst du entweder alteAdresse mit der wirklichen Adresse der im oberen Frame angezeigten Seite initialisieren oder die Fallabfrage so ändern:

if (neueAdresse!=alteAdresse && alteAdresse!='')

Ich weiß ja nicht, was du da vor hast......
Wenn du bei bestimmten Seiten einen bestimmten Text anzeigen willst, z.B. wenn jemand grade auf Google ist anzeigen 'Hey, Google ist super!', dann kannst du an der mit '//tue irgendwas' markierten Stelle die neueAdresse überprüfen... steckt da z.B. das Wort 'google' drin?

(Momentan ermöglichst du deinem Nutzer ja wahrscheinlich nicht, Google zu besuchen... dafür müsste ja irgendwo nen Link dahin stehen... war nur als Beispiel gedacht)

« CS server und neueröffnung eines clansWerbeverdienst mit Homepage »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Mainframe
Große Computer, wie sie in Rechenzentren zum Einsatz kommen, und die über Terminals Tausende von Anwender bedienen. Siehe auch Super-Computer...

Klickrate
Das Wort Klickrate gibt das Verhältnis vom Anklicken der Werbebanner zum Anklicken der Internetseite an auf der sich die Werbung befindet. An dieser Rate werden beis...

Hypertext
Hypertext ( zu Deutsch: Übertext) ein ein von dem Informatiker Theodore L. Nelson in den sechziger Jahren geprägter Begriff für Text, der dreidimensional g...