Event-Handler bei Frames
Gregor Meyer
- javascript
Hallo
Ich hoffe ich darf nochmals ne Frage stellen die in eine ähnliche Richtung geht wie meine letzte...
Ausgangslage ist eine Frameseite mit 2 Spalten.
Das linke Frame beinhaltet die Links zu welchen der Inhalt im rechten Frame dann dargestellt werden soll. Zusätzlich soll aber bei einem onmouseover im linken Frame ein Titelbild im rechten Frame dargestellt werden.
Bisher hab ich das folgendermassen gelöst:
<a href="inhalt.htm" target="right"
onnmouseover="parent.right.location.href='titel.htm';"
onmouseout="parent.right.location.href='leer.htm';"
</a>
Das mouseover und -out funktioniert auch bestens. Das Problem habe ich wenn ich den Link auch wirklich klicke, dann wird mir der Inhalt zwar korrekt im rechten Frame angezeigt, aber nur solange ich mit der Maus noch auf dem Link bleibe. Sprich wenn ich den Link wirklich klicke, dann sollte onmouseout nicht mehr gefeuert werden.
Wie kann ich das realisieren?
Gruss und besten Dank
Greg
PS: Hoffe mich einigermassen verständlich ausgedrückt zu haben...
Hi Gregor,
Das mouseover und -out funktioniert auch bestens. Das Problem habe ich wenn ich den Link auch wirklich klicke, dann wird mir der Inhalt zwar korrekt im rechten Frame angezeigt, aber nur solange ich mit der Maus noch auf dem Link bleibe. Sprich wenn ich den Link wirklich klicke, dann sollte onmouseout nicht mehr gefeuert werden.
ich bin zwar nicht so firm in JS, aber ich versuch's mal. Ein wirklich eleganter Weg fällt mir zwar nicht ein, aber wieso setzt du nicht einfach im Notfall in einer vom Eventhandler onclick aufgerufenen Funktion x() eine (z.B. bool-)Variable, die du dann in der von onmouseout aufgerufenen Funktion y() abfragst? Vom Prinzip her und nicht meinerseits nachgeprüft dann etwa so:
<a [...] onclick="x()" onmouseout="y()">...</a>
der JS-Teil dazu könnte so aussehen:
<script type="text/javascript">
var clicked;
function x() {
clicked = true;
}
function y() {
if (clicked) {
// dein eigentlicher Funktionsablauf
}
}
</script>
Versuch's mal so. Ich hoffe bloß, ich bin nicht mit globalen/lokalen Variablen durcheinandergekommen. ;-)
Viele Grüße
Benjamin
hi,
Das mouseover und -out funktioniert auch bestens. Das Problem habe ich wenn ich den Link auch wirklich klicke, dann wird mir der Inhalt zwar korrekt im rechten Frame angezeigt, aber nur solange ich mit der Maus noch auf dem Link bleibe. Sprich wenn ich den Link wirklich klicke, dann sollte onmouseout nicht mehr gefeuert werden.
Wie kann ich das realisieren?
OnClick ein Statusflag setzen, welches beim onMouseout vorher abgefragt wird. Müsste dann vermutlich für jeden Link ein eigenes Flag sein - könnte man dann aber gleich als Objekteigenschaft des jeweiligen Javascript-Linkobjektes setzen.
gruß,
wahsaga