Joachim: EventHandler

Beitrag lesen

hi,

Ich brauche schließlich einen Funktionsnamen, der später mit onmouseover="javascript:iframeOn()" aufgerufen werden kann, und "  document.frames.iframe11.onmouseover = function laden(){ " alleine hats nicht gebracht.

hmm, ich bin jetzt nicht so drinne in der Geschichte, aber normalerweise brauchst Du _keinen_ eventhandler im tag, wenn Du ihn vorher so definierst:

document.getElementById("FRAMENAME").onmouseover = laden;

wohlgemerkt: ohne(), denn die Funktion wird nicht gerufen, es wird lediglich ein "Zeiger" gesetzt. Daher kann man so keine Paramerter uebergeben, dafuer gibt's folgendes Konstrukt:

document.getElementById("iframe11").onmouseover = new Function('laden("param")');

soweit die Theorie, ich denke aber, dass Du es wie folgt loesen kannst, rufe die folgende Funktion per _onload_ in body-tag auf und _vergiss_ die eventhandler im iframe-tag:

// alle auf true setzen
var firstTime = new Array(32);
for(var j in firstTime) firstTime[j] = 1;

function getEvent()
{
  // iframe0 - iframe 31
  for(var i = 0; i < 32; i++)
  {
    document.getElementById("iframe" + i).onmouseover = function()
    {
      if(firstTime[i])
      {
         firstTime[i] = 0;
         // sourcezuweisung geht afaik auch
         // pack alle src in ein Array
         document.getElementById("iframe" + i).src = mySrc[i];
      }
      document.getElementById("iframe" + i).onmouseover =  null;
    }
  }
}

ist jetzt ungetestet, koennte aber klappen. Nimm am Besten Mozilla  0.9.8 zum Testen, dann kannst Du Dir ueber die Konsole oder den Debugger die Fehler ansehen ;-)

hth + Gruss  Joachim