cheops: event im iframe abfangen

hi zusammen!

ich benutze normalerweise folgenden code, um key-events auf einer seite abzufangen:

function handleKeyDown (evt) {
  var keyCode = document.all ? event.keyCode :
                evt.which ? evt.which :
                evt.keyCode ? evt.keyCode :
                evt.charCode;
  if (keyCode == 13) {
    window.document.forms[0].submit();
    return false;
  }
  else
    return true;
}
if (document.layers)
  document.captureEvents(Event.KEYDOWN);
document.onkeydown = handleKeyDown;

...hier wird z.b. enter abgefragt und daraufhin wird ein
dokument abgeschickt.
jetzt habe ich ein iframe auf der seite mit folgender
syntax:

<iframe id="iView" style="width: 415px; height:205px"></iframe>

...wie kann ich jetzt o.g. script benutzen, um key-events innerhalb
des iframes abzufangen? alle versuche meinerseits schlugen fehl,
das script ist niemals angesprungen, es gab aber auch keinerlei
fehlermeldungen :-(

hat da jemand eine idee?
danke im voraus...

gruß
cheops

  1. Moin Moin !

    Das IFRAME enthält ein eigenständiges Dokument, in dem Du die Key-Events separat behandeln ("abfangen") mußt -- wozu auch immer das gut sein soll.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    1. aloa!

      naja, so weit ging mein gedankengang dann auch noch... klar hab ich das script auf das iframe angesetzt...

      ...tat sich aber wie gesagt nix :-(

      Moin Moin !

      Das IFRAME enthält ein eigenständiges Dokument, in dem Du die Key-Events separat behandeln ("abfangen") mußt -- wozu auch immer das gut sein soll.

      Alexander

  2. Hi,

    if (document.layers)
      document.captureEvents(Event.KEYDOWN);
    document.onkeydown = handleKeyDown;

    Idee wäre, dass du hier das document des iframes ansprechen musst! und daran die events hängen musst!

    weiß nicht genau wie du die ansprechen kannst. Versuchs mal so:

    document.getElementById("iframeID").document.onkeydown

    oder

    document.frames["iframID"].document.onkeydown

    weiß aber nicht ob das geht!

    Gruß
    Christian

    1. hi,

      hab den fehler gefunden... ist aber zu peinlich als dass ich ihn hier erwähnen könnte ;-)
      anyway, klappt jetzt jedenfalls und der iframe liefert mir den
      event und den passenden keycode.
      letzte frage noch: kann man den keycode irgendwie "verbiegen"?
      also angenommen ich bekomme eine "13" für return zurück und
      ich möchte aber den effekt von "shift+return" simulieren... kann
      ich den bereits gestarteten event noch ändern?

      ich hatte auf sowas hier getippt:
      if (document.frames["iView"].event.keyCode == 13)
         document.frames["iView"].event.keyCode = (13&16);

      ...funktioniert aber leider nicht :-(

      gruß und danke
      cheops

      Hi,

      if (document.layers)
        document.captureEvents(Event.KEYDOWN);
      document.onkeydown = handleKeyDown;

      Idee wäre, dass du hier das document des iframes ansprechen musst! und daran die events hängen musst!

      weiß nicht genau wie du die ansprechen kannst. Versuchs mal so:

      document.getElementById("iframeID").document.onkeydown

      oder

      document.frames["iframID"].document.onkeydown

      weiß aber nicht ob das geht!

      Gruß
      Christian