[Javascript] onmouseover-Event bei IFrames

Übersicht Andere Programmiersprachen Allgemein

Neue Antwort erstellen

Eingeproggt

Betreff: [Javascript] onmouseover-Event bei IFrames

BeitragDi, März 05, 2013 1:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus,

ich hab folgenden Test-Code der mein Problem schildern soll:
Code: [AUSKLAPPEN]
<html>
<body>
<script type="text/javascript">
function update(event) {
   if (!event) {
      event=window.event;
   }
   document.getElementById('debug').innerHTML=event.clientX;
}
document.onmousemove=update;
</script>
<div id="debug"></div>
   <iframe src="egal.html" width="200" height="100"></iframe>
</body>
</html>

Wenn man über den IFrame fährt mit der Maus, wird onmouseover offensichtlich nicht ausgeführt. In Opera und FF getestet bis jetzt. Das bräuchte ich aber dringend, kennt ihr einen Workaround?

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

the FR3AK

BeitragDi, März 05, 2013 1:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnte daran liegen, dass IFrames kein mouseover event besitzen (bin mir nicht sicher). Du könntest z.B. ein div/span/a Tag aussenrum packen und darauf das Event setzen. Könnte funktionieren Wink

[EDIT]
Huch, hab mir das Script nicht richtig angeschaut Very Happy aber versuch es trotzdem mal...

Xeres

Moderator

BeitragDi, März 05, 2013 2:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Der IFrame wird ein eigenes Dokument mit eigenen Events sein.
Wenn du einfach nur die Position willst, benutze "pointer-events: none;" im stylesheet.

Code: [AUSKLAPPEN]
<!doctype html>
<html lang="de">
<head>
   <meta charset="UTF-8">
   <title>IFrame Event</title>
   <style type="text/css">

      iframe {
         pointer-events: none;
      }

   </style>
   <script type="text/javascript">
      function update(event) {
         if (!event) {
            event=window.event;
         }
         document.getElementById('debug').innerHTML=event.clientX;
      }
      document.onmousemove=update;
   </script>
<body>

   <div id="debug"></div>
   <iframe src="egal.html" width="200" height="100"></iframe>
   
</body>
</html>
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Eingeproggt

BeitragDi, März 05, 2013 2:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow, so schnell hätt ich nicht mit einer Antwort gerechnet, Danke.
Hab natürlich auf Google nach dem Problem gesucht und da kam nur "ich will bei onmouseover einen iframe neu laden" und so. Also dachte ich, ich belebe mit der Frage mal das blitzforum und prompt kommt ne Antwort die mich auf eine Idee brachte:
Ich hab einen (unsichtbaren) div ÜBER den IFrame gelegt (nicht drumherum).
Irgendwie gehts jetzt Laughing Es lebe der Pfusch!

EDIT: Mein Beitrag bezieht sich auf fr3aks Antwort. Xeres, deine Lösung klingt wesentlich eleganter (Und ja, es geht mir nur um die Position), aber weigert sich in Opera zu laufen Sad (EDIT2: Oh, steht auch hier: https://developer.mozilla.org/...ter-events)
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group