8

I am trying to use window.opener.returnValue with showModalDialog. There are numerous references to a technique which can be used to workaround window.returnValue not working. However it just doesn’t seem to work in Version 23.0.1271.97 of Chrome.

If I comment out the self.close line as follows, and put alerts in before and after the return value is set then both alerts show as ‘undefined’:

The caller a1.html

<html>
<head>
    <base target="_self"/>
 <script>
  function fu()
  {
    window.returnValue = undefined;
    var result = window.showModalDialog("b1.html", window, "dialogHeight:650px; dialogWidth:900px;");
    if (result == undefined)
        result = window.returnValue;

    if (result != null && result != "undefined")
        text.value = result;
  }

 </script>
</head>
<body>
 <input type=button value="click me" onclick="return fu();">
 <input type=text id=text>
</body>
</html>

The called b1.html:

<html>
<head>
<base target="_self"/>
<script>

  function fu()
  {
   var text = document.getElementById("text");
  if (window.opener)
  {
    alert(window.opener.returnValue);
    window.opener.returnValue = "your return value";
    alert(window.opener.returnValue);
  }
  text.value = window.opener.returnValue;
  //self.close();
  }


 </script>
</head>
<body>
 <input type=button value="close" onclick="return fu();">
 <input type=text id=text>
</body>
</html>
Rob Sedgwick
  • 4,342
  • 6
  • 50
  • 87
  • I believe you should be setting the `returnValue` of the modal window, not the opener. Make sure you assign the return from `window.showModalDialog` to a variable, as this is where the `returnValue` goes. [this question](http://stackoverflow.com/questions/10213530/javascript-showmodaldialog-not-returning-value-in-chrome) might be related to your issue. – jbabey Jan 21 '13 at 14:49
  • 1
    the bug in Chrome (http://stackoverflow.com/questions/10213530/javascript-showmodaldialog-not-returning-value-in-chrome) means you can't use returnValue of the modal window in this browser. That's why I am using window.opener instead. – Rob Sedgwick Jan 21 '13 at 14:59
  • Two years later and chrome still has the above bug. – SouthShoreAK Jan 15 '14 at 23:38

1 Answers1

0

Also window.returnValue will work only when both modal dialog window and parent window(which opened the dialog) are hosted in the same server. If not it will return undefined only.

Afsanefda
  • 3,069
  • 6
  • 36
  • 76
SumRaj
  • 1