Jörg Frintrop: Aufruf um Frame1 mit ausgabe im Frame2

Hallo!

Kann mir jemand sagen, wie ein Javascript, welches in einem Frame gestartet wurde, eine document.write Anweisung in einem anderen Frame ausführt ?

Gruss Jörg

  1. Hi,
    hier ein kleines Beispiel, ich hoffe es hilft dir weiter :)

    parent.framename.document.write(window.document.forms[0].elements[0].value);

    'framename' ist der Name deines Frames...
    Man kanns aber auch so machen:

    parent.frame['framename'].document.write(window.document.forms[0].elements[0].value);

    Gruß
    Axel

    1. Danke für die schnelle Antowrt.
      Allerdings klappt es nicht. Ich habe wohl zu wenig Infos gegeben.

      Das Script lautet wiefolgt:
      <script language=javascript>
      <!--

      var Part1 = 'Es liegen <b>3</b> neue Nachrichten vor ...';
      var Part2 = '';

      function setPositionNN(){
       document.Mitte.pageX = window.innerWidth-145;
      }
      function setPositionIE(){
       Mitte.style.left = document.body.clientWidth-145;
      }

      function showItemsNN(){
       parent.frame['main']..document.writeln('<layer name=Mitte pageX='+(window.innerWidth-145)+' pageY=0 visibility=visible z-index:100>'+ Part1+Part2 +'</layer>');
      }
      function showItemsIE(){
       parent.frame['main'].document.writeln('<span id=Mitte style="position:absolute;left:'+(document.body.clientWidth-145)+';top:0;visibility=visible">'+ Part1+Part2 + '</span>');
      }
      function startNN(){
       if ((window.innerWidth-10)<145) return false;
       showItemsNN();
       stayOnTopNN()
       setPositionNN();
       window.onresize=setPositionNN;
       return true;
      }
      function startIE(){
       if ((document.body.clientWidth)<145) return false;
       showItemsIE();
       stayOnTopIE()
       setPositionIE();
       window.onresize=setPositionIE;
       return true;
      }
      function stayOnTopNN() {
       document.Mitte.pageY = window.pageYOffset;
       timer = setTimeout("stayOnTopNN()", 100);
       return true;
      }
      function stayOnTopIE() {
       Mitte.style.top = document.body.scrollTop;
       timer = setTimeout("stayOnTopIE()", 100);
      return true;
      }
      function CloseIt(){
       if (document.layers) setPositionNN();
       if (document.all) setPositionIE();
       if (document.layers) {
       document.Mitte.visibility='hidden';
       }
       if (document.all) {
       Mitte.style.visibility='hidden';
       }
      }
      if (document.layers) startNN();
      if (document.all) startIE();
      //-->
      </script>

      Erklärung:
      Hier soll eine Textausgabe eingeblendet werden, welche mitscrollt.
      Wie gesagt, wird das Script im Null-Frame ausgegeben und soll die Ausgabe im "main"-Frame anzeigen.

      Gruss Jörg

      1. Hi,
        ein Tipp: Es heisst nicht frame sondern frames...

        Ich hab mal n bischen rumgepfuscht...so geht's bei mir.....
        ich starte die Funktion gleich nach dem Laden...also nicht durch den
        onLoad-Befehl im <BODY> verunsichern lassen :))...

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
        <html>
        <head>
         <title>Unbenannt</title>
        </head>
        <script language="Javascript">
        var Part1 = 'Es liegen <b>3</b> neue Nachrichten vor ...';
        var Part2 = '';

        function setPositionNN(){
         parent.frames['main'].document.Mitte.pageX = window.innerWidth-145;
        }
        function setPositionIE(){
         parent.frames['main'].Mitte.style.left = document.body.clientWidth-145;
        }

        function showItemsNN(){
         parent.frames['main'].document.writeln('<layer name="Mitte" pageX='+(window.innerWidth-145)+' pageY=0 visibility=visible z-index:100>'+ Part1+Part2 +'</layer>');
        }
        function showItemsIE(){
         parent.frames['main'].document.writeln('<span id="Mitte" style="position:absolute;left:'+(document.body.clientWidth-145)+';top:0;visibility=visible">'+ Part1+Part2 + '</span>');
        }
        function startNN(){
         if ((window.innerWidth-10)<145) return false;
         showItemsNN();
         stayOnTopNN()
         setPositionNN();
         window.onresize=setPositionNN;
         return true;
        }
        function startIE(){
         if ((document.body.clientWidth)<145) return false;
         showItemsIE();
         stayOnTopIE();
         setPositionIE();
         window.onresize=setPositionIE;
         return true;
        }
        function stayOnTopNN() {
         parent.frames['main'].document.Mitte.pageY = window.pageYOffset;
         timer = setTimeout("stayOnTopNN()", 100);
         return true;
        }
        function stayOnTopIE() {
         parent.frames['main'].Mitte.style.top = document.body.scrollTop;
         timer = setTimeout("stayOnTopIE()", 100);
        return true;
        }
        function CloseIt(){
         if (document.layers) setPositionNN();
         if (document.all) setPositionIE();
         if (document.layers) {
         document.Mitte.visibility='hidden';
         }
         if (document.all) {
         Mitte.style.visibility='hidden';
         }
        }

        function setStart()
        {
        if (document.layers) startNN();
        if (document.all) startIE();
        }
        </script>
        <body onLoad="setStart()">

        </body>
        </html>

        Gruß
        Axel

        1. Hi,

          allerdings ist nun der Inhalt vom "main"-Frame futsch.
          Das Script sollte ja nur ein Layer starten und sich über das "main"-Frame setzen.
          Also so wie man es von Swimm-Banner kennt.

          Gruss Jörg

          Hi,
          ein Tipp: Es heisst nicht frame sondern frames...

          Ich hab mal n bischen rumgepfuscht...so geht's bei mir.....
          ich starte die Funktion gleich nach dem Laden...also nicht durch den
          onLoad-Befehl im <BODY> verunsichern lassen :))...

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <html>
          <head>
          <title>Unbenannt</title>
          </head>
          <script language="Javascript">
          var Part1 = 'Es liegen <b>3</b> neue Nachrichten vor ...';
          var Part2 = '';

          function setPositionNN(){
          parent.frames['main'].document.Mitte.pageX = window.innerWidth-145;
          }
          function setPositionIE(){
          parent.frames['main'].Mitte.style.left = document.body.clientWidth-145;
          }

          function showItemsNN(){
          parent.frames['main'].document.writeln('<layer name="Mitte" pageX='+(window.innerWidth-145)+' pageY=0 visibility=visible z-index:100>'+ Part1+Part2 +'</layer>');
          }
          function showItemsIE(){
          parent.frames['main'].document.writeln('<span id="Mitte" style="position:absolute;left:'+(document.body.clientWidth-145)+';top:0;visibility=visible">'+ Part1+Part2 + '</span>');
          }
          function startNN(){
          if ((window.innerWidth-10)<145) return false;
          showItemsNN();
          stayOnTopNN()
          setPositionNN();
          window.onresize=setPositionNN;
          return true;
          }
          function startIE(){
          if ((document.body.clientWidth)<145) return false;
          showItemsIE();
          stayOnTopIE();
          setPositionIE();
          window.onresize=setPositionIE;
          return true;
          }
          function stayOnTopNN() {
          parent.frames['main'].document.Mitte.pageY = window.pageYOffset;
          timer = setTimeout("stayOnTopNN()", 100);
          return true;
          }
          function stayOnTopIE() {
          parent.frames['main'].Mitte.style.top = document.body.scrollTop;
          timer = setTimeout("stayOnTopIE()", 100);
          return true;
          }
          function CloseIt(){
          if (document.layers) setPositionNN();
          if (document.all) setPositionIE();
          if (document.layers) {
          document.Mitte.visibility='hidden';
          }
          if (document.all) {
          Mitte.style.visibility='hidden';
          }
          }

          function setStart()
          {
          if (document.layers) startNN();
          if (document.all) startIE();
          }
          </script>
          <body onLoad="setStart()">

          </body>
          </html>

          Gruß
          Axel