写入窗口时IE9权限被拒绝 - ExtJS 4 App

时间:2012-11-26 11:47:46

标签: javascript extjs4 internet-explorer-9

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()

为什么上面的代码会生成" Permission Denied"在IE9中出错,但在Firefox或Chrome上运行得很好吗?有工作吗?它是一个ExtJS 4.1应用程序,它在单个域的Intranet上运行。它使用ExtJS历史记录功能,这可能是一个因素。

由于

5 个答案:

答案 0 :(得分: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"  />

答案 1 :(得分:1)

如果我没有弄错的话,IE认为,关于:空白(你试图打开,我猜)是一个不安全的网站,因此你不能与之沟通。

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

答案 2 :(得分:1)

这是一个很长的镜头,但你关闭所有IE窗口并测试了这个?我正在考虑的可能性是,在测试时您可能已经打开了一个名为printwin的窗口,然后您从基页导航(或者在新选项卡中打开它或尝试打开多个名为{{的窗口) 1}})并再次尝试打开名为printwin的窗口。 printwin窗口已经打开,但基页无权访问它,因为它不是页面的原始开启者

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

答案 3 :(得分: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();

test

答案 4 :(得分:0)

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

document.domain = document.domain;

删除后一切正常。