【问题标题】:submit form, reload parent, and close child提交表单,重新加载父级,关闭子级
【发布时间】:2013-08-19 19:12:21
【问题描述】:

我有一个跨 IE 问题,不一定是跨浏览器问题。

我正在尝试打开一个子窗口,用户将在其中提交表单。提交时,应调用 PHP 脚本来加载子表单数据。然后,子窗体应该重新加载包含在子窗体中添加的一些内容的父窗口,并关闭子窗体...

用户将不会使用除 IE 之外的任何其他浏览器,而是使用不同的版本(我希望使其完全兼容,但我会使用不同的 IE)。我在 IE10 中对此没有任何问题,但我无法让它在 IE8 中工作。有些用户必须使用 IE8(由于其他软件无法在 7 或 8 上运行,他们被卡在 XP 上)。

我试过这个:

<form name="parts" id="parts" action="tableaddrow_nw.php" method="get" onsubmit="window.opener.document.location.href='q.php?q=<?php echo $q; ?>&memberid=<?php echo $memberid; ?>'; self.close();">

我试过这个:

<form name="parts" id="parts" action="tableaddrow_nw.php" method="get">
<input type="button" value="Save & Close Window" class="submit" onclick="validateRow(this.form);"

validateRow(this.form); 函数在哪里:

function validateRow(frm)
{
  frm.submit();
  window.opener.document.location.href='q.php?q=<?php echo $q; ?>&memberid=<?php echo $memberid; ?>';
  this.window.close();
}

我还反转了提交和重新加载,我在发布时阅读了该内容,但它对我不起作用。

PHP 代码运行良好,因为它在 IE10 版本中运行良好。基本上,它会删除之前的条目,然后读取传入的数组,并检查索引是否有效,然后再次加载数组数据。

如果我不关闭窗口,它在两个版本中都可以正常工作。所以我想我希望有人可以帮助我关闭提交窗口,但可能等待足够长的时间来验证提交是否成功。

提前感谢您的帮助。

【问题讨论】:

  • PHP 代码在服务器上运行。与浏览器无关。
  • @Diodeus - 我知道,只是想详细解释一下。

标签: javascript cross-browser


【解决方案1】:

尝试将 JavaScript 代码放在弹出页面(提交表单)的 Header 中,如下所示:

<script type="text/javascript">
window.onunload = function(){
  window.opener.location.reload();
  window.close(); 
};
</script>

【讨论】:

    【解决方案2】:

    提交表单后调用脚本函数。

    <script type="text/javascript">
      function closeChildPopup()
      {
    
        opener.location.reload(); 
        window.close(); 
      }
    </script>
    

    【讨论】:

      【解决方案3】:

      我设法在我的 AHA 中解决了这个问题!时刻。

      我只是用了

      if ( $.browser.msie ) {
          if ( $.browser.version == "10.0" ) {
              this.window.close();
          }
      }
      

      为了告诉 IE10 只是关闭窗口。

      在实际吐出输入数据库的数据的表单操作(tableaddrow_nw.php)脚本中,我添加了一个“关闭窗口”按钮。

      <form method="post">
          <input type="button" value="Close Window" onclick="window.close()" />
      </form>
      

      因此,如果是 IE8,则窗口不会关闭,但会获得一个关闭按钮。在 1E10 中,窗口刚刚关闭。对于 IE8 用户来说,这又是一次点击,但在工业工具的主要供应商(我不会提及他们的名字)将他们的软件变成更现代的东西之前,我无能为力。

      【讨论】:

        猜你喜欢
        • 2012-09-02
        • 2020-05-20
        • 1970-01-01
        • 1970-01-01
        • 2015-12-04
        • 2014-08-28
        • 2022-08-11
        • 2015-11-19
        • 1970-01-01
        相关资源
        最近更新 更多