我遇到跨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版本中很好用。基本上,它删除以前的条目,然后读取发送的数组,并检查以验证索引是否有效,并再次加载数组数据。
如果我不关闭窗口,它在两个版本中都可以正常工作。所以我想我希望有人可以帮助我关闭提交的窗口,但也许等待足够长的时间来验证提交是否成功。
提前感谢您的帮助。
答案 0 :(得分:1)
提交表单后,调用脚本功能。
<script type="text/javascript">
function closeChildPopup()
{
opener.location.reload();
window.close();
}
</script>
答案 1 :(得分: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用户来说,这又是一次点击,但是直到工业工具的主要供应商(我不会提到名称)将他们的软件变得更加现代化之前,我无能为力。
答案 2 :(得分:0)
尝试将JavaScript代码放在弹出页面(提交表单)的标题中,如下所示:
<script type="text/javascript">
window.onunload = function(){
window.opener.location.reload();
window.close();
};
</script>