【问题标题】:Popup window return value弹窗返回值
【发布时间】:2011-02-01 19:52:31
【问题描述】:

我希望有人可以帮助我解决这个问题。

我正在尝试将一个值从弹出窗口返回到使用 javascript 启动它的父窗口。

我尝试过的是调用(在各种网站上阅读)

window.opener.document.forms[0].textField.value = 'value'

虽然这不会产生任何错误,但它不会更改字段值。

我曾尝试在网上搜索解决此问题的方法,但在 google 上有很多与“弹出返回值”相关的网站,结果可以追溯到 2000 年,许多网站似乎相互冲突,所以我有点困惑。

理想情况下,我更愿意让弹出窗口等待做出决定(是或否),然后将真或假值从父窗口返回给调用函数。这样做的原因是,我有一个表单,使用 onsubmit 来调用 javascript 函数来确认天气是否继续。我正在使用一个对话框来返回一个真假值,但现在尝试通过一个弹出窗口来完成它,这样我就可以包含图像和各种其他信息。

希望我已经对此进行了充分的解释,并且有人可以帮助我解决问题。

感谢您的宝贵时间。

【问题讨论】:

标签: javascript


【解决方案1】:

您可以从弹出窗口引用打开弹出窗口的窗口...在此示例中,弹出窗口上的某些内容调用此函数(存在于弹出窗口中)并传入“val”...

 <script language="javascript">
    function GetRowValue(val)
    {
        // hardcoded value used to minimize the code.
        // ControlID can instead be passed as query string to the popup window
        window.opener.document.getElementById("ctl00_ContentPlaceHolder1_TextBox2").value = val;
        window.close();

    }

    </script>

【讨论】:

【解决方案2】:

这里是 Django 管理员方法的剖析:Howto: javascript popup form returning value for select like Django admin for foreign keys。毫无疑问,它更复杂,但最终这种技术会让你到达那里。

【讨论】:

    【解决方案3】:

    在父页面中使用它

    var answer = window.open(<your page and other arguments>)
    if (answer == 1)
          do some thing
    

    在子页面中

    window.returnValue = 1;
    

    【讨论】:

    • 我按照你的建议试过了,但是这个父窗口不等待子窗口的回复。我认为这也是在 if 子句部分中我根据返回值设置元素 innerHtml 的原因。
    • 显然这仅在您使用 showModalDialog 打开窗口时才有效。它看起来也没有得到广泛的支持。 msdn.microsoft.com/en-us/library/ms534371(v=vs.85).aspx
    【解决方案4】:

    尝试以下方法:

    window.opener.document.getElementById("sizeId" + rn).value
    

    大小 id 将匹配您要返回值的输入类型的父窗口 id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      相关资源
      最近更新 更多