Siechfred: Javascript (IE; FF) und Element Properties

Beitrag lesen

Tag LeKuchen.

Eine kurze Erklärung, was passieren soll: Bei der Control handelt es sich um ein div, welches ein Attribut evaluationfunction hat.

Da dieses Attribut nicht zum DOM-Standard gehört, steht es dir als Objekteigenschaft auch nicht zur Verfügung. Der IE scheint mir da fehlertoleranter. Folgendes funktioniert jedenfalls im IE 6 und im FF 1.0.7:

Ctrl = new Object();  
  
function dyna_func(ident) {  
  var obj = document.getElementById(ident);  
  for(i=0;i<obj.attributes.length;i++) {  
    if(obj.attributes[i].nodeName == "evaluationfunction")  
      Ctrl.evaluationfunction = obj.attributes[i].nodeValue;  
  }  
}

Du könntest dir jetzt noch eine eigenes Control-Objekt stricken, das könnte so aussehen:

Ctrl = new Object();  
test_func = "{ alert('Test bestanden'); }";  
  
function dyna_func(ident) {  
  var obj = document.getElementById(ident);  
  for(i=0;i<obj.attributes.length;i++) {  
    if(obj.attributes[i].nodeName == "evaluationfunction")  
      Ctrl.evaluationfunction = new Function(window[obj.attributes[i].nodeValue]);  
  }  
  // Testaufruf  
  Ctrl.evaluationfunction();  
}

In der Hoffnung, dich richtig verstanden zu haben.

Siechfred