Simone: Editor Problem Wert an Funktion = ??? Hilfe

Hi
Ich bin dabei einen kleinen Editor zu schreiben.
Habe jedoch ein super Problem bei der Übergabe von Variablen
in Javascript und bekomme das einfach nicht hin

meine Code:

function doImage()
  {
 var imgSrc = prompt('Enter image location', '');
 if(imgSrc != null)
 iBody.document.execCommand('insertimage', false, imgSrc);
  }

Soweit so gut !
diese Funktion ruft ein Prompt auf und ich kann die Bild URL eingeben.
das klappt

wenn ich aber ein Fenster öffne um dort eine Eingabe zu machen komme ich einfach nicht mehr weiter

Beispiel für die aufzurufende Eingabe  Datei :

<html>
  <head>
    <style type="text/css">
      BODY {
        background-color: buttonface; }

TD, INPUT, SELECT {
        font-family: "MS Sans Serif"; font-size: xx-small; vertical-align: middle; }
TABLE.dlg { border:0; }
.dlg TD { align: left; height: 20; }
.dlg INPUT { border-size: 2px; }
INPUT.button { border-top: 1px solid white; border-left: 1px solid white;
border-bottom: 1px solid black; border-right: 1px solid black;
font-size: x-small; width: 60; }
SELECT { height: 75%; }
    </style>
    <title>Insert Image</title>

<script language="JavaScript">
function attr(name, value) {
 if (!value || value == "") return "";
 return ' ' + name + '="' + value + '"';
}
function insertImage() {
 window.returnValue = '<IMG border="0"' + attr("alt", alt.value) + attr("src", url.value)
       + attr("align", align[align.selectedIndex].value)
       + attr("width", width.value)
       + attr("height", height.value)
       + '/>';
 window.close();
}
function cancel() {
 window.returnValue = null;
 window.close();
}
    </script>
  </head>

<body topmargin="0" leftmargin="0" style="border: 0; margin: 0;" scroll="no">
    <table class="dlg" cellpadding="0" cellspacing="2" width="100%" height="100%">
      <tr>
   <td colspan="5">
     <table width="100%">
       <tr>
         <td nowrap>Picture Info </td>
         <td valign="middle" width="100%"><hr width="100%"></td>
       </tr>
     </table>
   </td>
      </tr>
      <tr>
   <td width="10"> </td>
   <td width="70">Url:</td>
   <td valign="middle" colspan="3">
     <input type="text" name="url" value="http://yourhost/images/yourimage.gif" size="60">
   </td>
      </tr>
      <tr>
   <td> </td>
   <td width="70">Alt Text:</td>
   <td valign="middle"><input type="text" name="alt" value="Your Image" size="25"></td>
   <td width="70">Align:</td>
   <td valign="middle">
    <select name="align">
     <option value="left">Left</option>
     <option value="absbottom">Abs Bottom</option>
     <option value="absmiddle">Abs Middle</option>
     <option value="baseline">Baseline</option>
     <option value="bottom">Bottom</option>
     <option value="middle">Middle</option>
     <option value="right">Right</option>
     <option value="texttop">Text Top</option>
     <option value="top">Top</option>
    </select>
   </td>
      </tr>
      <tr>
   <td> </td>
   <td width="70">Width:</td>
   <td valign="middle"><input type="text" name="width" value="100%" size="4"></td>
   <td width="70">Height:</td>
   <td valign="middle"><input type="text" name="height" value="100%" size="4"></td>
      </tr>
      <tr>
   <td colspan="5">
     <table width="100%">
       <tr>
         <td valign="middle" width="100%" colspan="2"><hr width="100%"></td>
       </tr>
     </table>
   </td>
      </tr>
      <tr>
   <td> </td>
   <td colspan="4" align="right">
     <input class="button" type="button" value="Insert" title="Insert Table" onclick="insertImage()">
     <input class="button" type="button" value="Cancel" title="Cancel Dialog" onclick="cancel()">
   </td>
      </tr>
    </table>
  </body>
</html>

_______________________________

Soweit ich das verstanden habe gibt es einige Möglichkeiten der Übergabe

evtl. Per Opener

window.opener.iBody.document.execCommand('insertimage', false, imgSrc);
window.close()

Vielleicht könnt ihr mir auf die "Sprünge" helfen!

Simone

PS: es ist super das es dieses Forum hier gibt

  1. Soweit ich das verstanden habe gibt es einige Möglichkeiten der Übergabe

    evtl. Per Opener

    Ja das ist richtig. window.opener ist das Fenster, in dem die window.open-funktion aufgerufen wurde. dabei hat ist window.openenr ein Window-Objekt, d.h. das window.openenr alle Eigenschaften und Variablen hat wie window

    Außerdem kannst du über window.opener Funktionen des Parent-Windows aufrufen. Beispiel:

    datei1.html:
    __________________________________
    <html>
      <head>
        <title>Aufrufer</title>
        <script type="text/javascript"><!--
          function demo(str) {
            alert("Dies ist die Demo-Funktion. Aufgerufen mit '"+str+"'");
          }
        --></script>
      </head>
      <body>
        <input value="Fenster öffnen" type="button" onclick="window.open('datei2.html','_blank','height=400,width=600');">
      </body>
    </html>

    __________________________________

    datei2.html:
    __________________________________
    <html>
      <head>
        <title>Aufgerufener</title>
      </head>
      <body>
        <input value="Funktion aufrufen" type="button" onclick="window.opener.demo('hier!');">
      </body>
    </html>
    __________________________________

    1. Hi

      Verstanden habe ich das Prinzip schon
      Dennoch gelingt es mir nicht die Funktionen für mein Beispiel  anzupassen.

      Gelingt mir einfach nicht

      Simone

      Dank Dir !

      1. HI

        Wo ist das Problem ??

        Das Script ist angepasst
        Wenn ich mit alert(imgHTML); die Variable Abrufe bekomm' ich auch diese so wie es sein sollte.
        Wenn ich die Variable mit window.opener.demo('imgHTML');
        übergeben möchte geht das nicht!
        [imgHTML] ist der Übergabewert

        Was mach ich falsch ?

        Simone

        Code:

        <script language="JavaScript">
        function attr(name, value) {
         if (!value || value == "") return "";
         return ' ' + name + '="' + value + '"';
        }
        function insertImage() {
         window.returnValue = '<IMG border="0"' + attr("alt", alt.value) + attr("src", url.value)
               + attr("align", align[align.selectedIndex].value)
               + attr("width", width.value)
               + attr("height", height.value)
              + '/>';

        imgHTML = window.returnValue;
        //alert(imgHTML);
        window.opener.demo('imgHTML');

        window.close();
        }
        function cancel() {
         window.returnValue = null;
         window.close();
        }
            </script>