daill: JavaScript Internet Explorer und Frame Objekt übergeben

Hallo,

ich hab ein mehr oder weniger großes Problem mit dem Internet Explorer und der Übergabe eines Frame Objektes. Ich zweifel mittlerweile schon an mir selbst denn meiner Meinung nach hab ich alles richtig gemacht. Ich hoffe ihr könnt mich eines besseren belehren.

Folgendes Problem:

Ich hab eine Seite in der Ich Ordnungsgemäß eine externe JavaScript Datei eingebunden und eine JavaScript Funktion aufgerufen habe

  
<script language="javascript" src="<?=INTRANET_HTTP_JSROOT ?>/anyJsFile.js"></script>  
<script language="javascript">  
 addBar(parent.frames[this.name]);  
</script>

ist ja soweit nicht unbedingt ungewöhnlich. Weiterhin befindet sich die Funktion innerhalb der externen JavaScript Datei.
Die Funktion soll als Übergabeparameter ein Frame oder Dokument Objekt erhalten mit dem es dann sachen anstellen soll z.b. nen div an das document hängen.

Bsp. der Funktion in der externen Datei:

  
function addBar(obj){  
 alert(obj.name);  
}  

Soweit so gut. Im FF funktioniert es natürlich einwandfrei im IE nicht. Als Fehler wird mir ein Ungültiger Parameter angelastet und ich weiß nicht warum.

Laut dem Alert scheint das Objekt auch gar nicht korrekt anzukommen denn sonst würde mir obj.name ja den Namen des Frames ausgeben und nicht einfach nur [Object]. Für mich heißt das so viel wie Objekt verloren gegangen und meine Frage ist jetzt: Warum?

Ich bedanke mich schonmal im vorraus für alle Hilfestellungen. Das hier ist gerade meine letzte Möglichkeit noch eine Lösung zu finden. Sitze da bestimmt schon 5 Stunden dran.

Liebe Grüße daill

  1. <script language="javascript" src="<?=INTRANET_HTTP_JSROOT ?>/anyJsFile.js"></script>
    <script language="javascript">
    addBar(parent.frames[this.name]);
    </script>

      
    Ähm ... \*hüstel\* also parent.frames[this.name]war nur ein Versuch this oder ähnliches bringen ebenfalls nicht den gewünschten Effekt im Internet Explorer.  
      
    Lieben Edit-Gruß  
    DaiLL
    
  2. Die Funktion soll als Übergabeparameter ein Frame oder Dokument Objekt erhalten

    Na, da muss du dich schon entscheiden.

    Was soll ein Frame-Objekt sein? Über window.frames, in dem Fall parent.frames, greifst du auf die window-Objekte der Dokumente des Framesets zu. Siehe: http://de.selfhtml.org/javascript/objekte/frames.htm

    parent.frames[this.name] soll anscheinend, wenn es funktioniert, nichts anderes ergeben, als das window-Objekt des aktuellen Dokuments. Das suchst du doch, oder? Dann musst du es nicht so umständlich notieren, sondern kannst auch direkt window oder this notieren.

    mit dem es dann sachen anstellen soll z.b. nen div an das document hängen.

    addBar(window);

    function addBar (windowObject) {
       alert(windowObject.document.title);
    }

    Mathias

    1. addBar(window);

      function addBar (windowObject) {
         alert(windowObject.document.title);
      }

      Solange du ohnehin nur das eigene window-Objekt übergibst, ist das natürlich überflüssig - Sinn der Sache ist, dass man auch ein anderes übergeben könnte, also z.b. addBar(parent.frames.einAndererFrame).

      Mathias

      1. Danke molily für deine Erklärung, allerdings ändern alle deine Vorschläge nichts an dem grundlegenden Problem, das der IE meckert und mir nicht das per alert ausgibt was ich sehen will (zum testen).

        Wenn ich eine Referenz auf ein Objekt übergebe dann sollte ich ja auch auf das Objekt zugreifen können obgleich das nun ein window, frame oder document Objekt ist, und das ist es ja was der IE bei mir nicht macht und ich es nicht nachvollziehen kann. Bei dem alert-Aufruf ist die Ausgabe weiterhin [Object] oder gar gänzlich leer. Im FF funktioniert der selbige Code einwandfrei und ich bekomme den Namen meines Frames oder Windows Objektes.

        Was mach ich falsch?

        Lg Chris

        1. Bitte schliessen.

          Fragt mich nich was da los war. Aber nun funktioniert es. Es ist mir gerade echt wirklich sehr rätselhaft was der Herr Internet Explorer für ein Problem hatte.

          Nunja. Schön das wir mal drüber geredet haben *rot werd* aber dennoch vielen Dank an alles Beiträge und Hilfestellungen!!!!

          Lg Chris