3
var display_setting = "toolbar=yes, location=no, directories=yes, menubar=yes,";
    display_setting += "scrollbars=yes, width=750, height=600, left=100, top=25";
    var printwin = window.open('', 'printwin', display_setting )
    printwin.document.open()
    printwin.document.write("Testing")
    printwin.document.close()

为什么上面的代码在 IE9 中会生成“Permission Denied”错误,但在 Firefox 或 Chrome 上运行良好?有解决办法吗?它是一个 ExtJS 4.1 应用程序,在单个域的 Intranet 上运行。它使用了 ExtJS 历史特性,这可能是一个因素。

谢谢

4

5 回答 5

4

我已经用上面的代码进行了测试,在 IE 中我只发现了一个问题,那就是在最后一行你没有声明对象获胜......如果你提供你的要求的细节,那么我会提供帮助。我已经修改了您的代码,并在 IE 中尝试了它对我的工作正常。

这是测试代码。如果要关闭窗口,请使用printwin.close()而不是printwin.document.close().

<script type="text/javascript">
function openwindowIE(){
var display_setting = "toolbar=yes, location=no, directories=yes, menubar=yes,";
    display_setting += "scrollbars=yes, width=750, height=600, left=100, top=25";
    var printwin = window.open('', 'printwin', display_setting )
    printwin.document.open()
    printwin.document.write("Testing")
    printwin.document.close()
}
</script>
<input type="button" onclick="openwindowIE()" value="go"  />
于 2012-11-26T12:24:48.327 回答
1

尝试这个:

var display_setting = "toolbar=yes, location=no, directories=yes, menubar=yes,";
display_setting += "scrollbars=yes, width=750, height=600, left=100, top=25";

var printwin = window.open('about:blank', 'printwin', display_setting);

printwin.document.open();
printwin.document.write("Testing");

printwin.close();

测试

于 2012-12-06T16:16:02.113 回答
1

如果我没记错的话,IE 认为,about:blank(我猜是你试图打开的)是一个不安全的网站,因此你不能与它通信。

如果我没记错的话,您可以打开任何其他(空)html 文档并在其中写入。

于 2012-11-26T12:04:11.410 回答
1

这有点长镜头,但您是否关闭了所有 IE 窗口并对此进行了测试?我正在考虑的可能性是,在测试时您可能打开了一个名为的窗口printwin,然后您离开了基本页面(或在新选项卡中打开它或尝试打开多个名为的窗口printwin)并再次尝试打开带有名称的窗口printwin。该printwin窗口已打开,但基本页面无权访问它,因为它不是页面的原始打开器

这里的关键点是窗口名称应该始终是唯一的

于 2012-12-05T08:38:40.727 回答
0

毕竟,事实证明其中一个包含的脚本包含该行

document.domain = document.domain;

删除后一切正常。

于 2013-01-09T14:41:53.230 回答