【问题标题】:IE opens two popups instead of oneIE 打开两个弹出窗口而不是一个
【发布时间】:2012-11-05 12:43:58
【问题描述】:

我有一个复杂的 PHP 脚本,它读取一些信息,然后调用一个 bash 脚本来处理它。 PHP 脚本在弹出窗口中显示输出,然后将浏览器导航回调用它的页面。

所以它在 Firefox 和 Chrome 中工作,但在 IE 9 中发生了一些奇怪的事情。当我点击调用 PHP 脚本的按钮时,浏览器变为空白,显示两个相同的空弹出窗口,一个接一个,当信息是填充其中一个,浏览器导航回来并关闭另一个弹出窗口。这是代码:

echo '<script type="text/javascript">';
echo 'win1 = window.open("", "", "status = 0, height=800, width=1000, resizable=1, scrollbars=1");';
echo 'window.history.go(-1);';
echo "win1.document.write($content);";
echo "win1.document.close();";
echo '</script>';

为什么会显示两个弹出窗口,我该如何防止呢?

【问题讨论】:

    标签: php javascript internet-explorer-9


    【解决方案1】:

    为什么 window.history.go 没有放在最后?

    同时删除参数中的所有空格,并给出一个不带空格的名称(第二个参数)。

    最后,如果您使用提交按钮,请将其更改为按钮或链接,在 onclick 中返回 false

    试试

    ?>
    
    <script type="text/javascript">
    var win1 = window.open("", "mywin", "height=800,width=1000,resizable,scrollbars");
    if (win1) {
      win1.document.write($content);
      win1.document.close();
      window.history.go(-1);
    }
    </script>
    

    DEMO TO TRY TO REPRODUCE

    【讨论】:

    • 感谢您的帮助。我以这种方式重写了它,但仍然出现第二个窗口。
    • 你有 URL 或者你可以创建一个呈现的 html/js 的JSFIDDLE 吗? - 或者至少显示调用页面的代码
    • 很遗憾我没有网址——这是一个尚未发布的新项目。有趣的是,两个弹出窗口不会同时出现。第二个在 1-2 秒后出现,并在浏览器返回时消失。浏览器完成整个操作大约需要 5 秒。
    • 刚刚在新的IE上测试过了。还是一样的。
    • 如果没有完整的代码,我无法为您提供帮助 - 按钮和 php 返回代码示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2014-11-16
    • 2018-04-03
    • 2013-10-06
    相关资源
    最近更新 更多