0

我有一个跨 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 版本中很好。基本上,它会删除以前的条目,然后读取传入的数组,并检查索引是否有效,然后再次加载数组数据。

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

提前感谢您的帮助。

4

3 回答 3

1

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

<script type="text/javascript">
window.onunload = function(){
  window.opener.location.reload();
  window.close(); 
};
</script>
于 2016-04-26T05:12:47.640 回答
1

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

<script type="text/javascript">
  function closeChildPopup()
  {

    opener.location.reload(); 
    window.close(); 
  }
</script>
于 2020-02-29T07:15:57.250 回答
0

我设法在我的一个 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 用户来说,这又是一次点击,但在工业工具的主要供应商(我不会提及他们的名字)将他们的软件变成更现代的东西之前,我无能为力。

于 2013-08-22T03:05:04.923 回答