“远程过程调用失败” - 仅限IE

时间:2011-04-07 11:51:21

标签: javascript .net internet-explorer

我正在尝试使用javascript打开一个新窗口,并使用当前窗口中的html填充它。有点像新窗口中的打印预览和新的CSS。

function prnt() {
        var pr = window.open("", "", "width=1020,height=750");
        pr.document.open();
        pr.document.write('<html><head><title>Test</title>');
        pr.document.write('<link href=print.css rel=Stylesheet></head><body>');
        pr.document.write(document.body.innerHTML);
        pr.document.write('</body></html>');
        pr.document.close();
        pr.focus();}  

我从这里调用这个函数:

<a id="print" href="#" runat="server" onclick="javascript:prnt();">PRINT</a>  

IE给我错误远程过程调用失败,它似乎指向这一行:
pr.document.close();

虽然在FF中一切正常。有任何想法吗?

修改
我正在运行Windows Server 2008 R2标准版 SP1

EDIT2
如果我删除 pr.document.close(); ,页面在IE中完美运行,完成显示在状态栏中。
但是,现在FF将无法正常工作。该页面实际上从未停止加载。我想它正在等待 pr.document.close(); 命令?

2 个答案:

答案 0 :(得分:3)

使用DOM ... document.write是evil

如何检查here

答案 1 :(得分:1)

它并不像一个简单的解决方案那么漂亮,但它似乎正在起作用 我替换了这行代码:

pr.document.close();  

这一行:

if (navigator.appName != "Microsoft Internet Explorer") pr.document.close();