尝试使用Ajax的window.open,window.print无法正常工作(IE9)

时间:2013-01-09 05:57:46

标签: javascript jquery

我正在尝试打开新窗口并使用javascript和jquery-1.8.3发送表单数据。

在Bernhard的帮助下,我成功地打了一个带有打印页面的新窗口。

(非常感谢Bernhard。window.open and sending form data not working

但是,window.print()函数在IE9中不起作用! (FF,Chorme做得好)

我刷新了页面,然后IE9调用了window.print()

这是源代码。

<a href="#" onclick="printPage()">Print this</a>

<script type="text/javascript" src="/common/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">

function printPage(){

    $.post('/common/print.jsp', {view:$("#ctn").html()}).success(function(response){
        var oWindow = window.open('', "printWindow", "width=700px,height=800px");
        oWindow.document.write(response);
        oWindow.print(); // I added this line. But IE9 not working.
    });
}
</script>

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

    $.post('/common/print.jsp', {view:$("#ctn").html()}).success(function(response){
        var oWindow = window.open('', "printWindow", "width=700px,height=800px");
        oWindow.document.write(response);
        oWindow.document.close();
        oWindow.focus();
        oWindow.print(); // I added this line. But IE9 not working.
    });

结帐:

Using HTTP Headers to Force Standards View in Internet Explorer 8 and Above

您还可以使用元标记来强制执行标准模式。 X-UA-Compatible meta tag告诉Internet Explorer使用或模拟哪种视图模式。

By setting this meta tag, you tell IE to use standards mode even if there are comments or an XML declaration above the DOCTYPE.determine what version of Internet Explorer can best view the page,然后设置元标记以定义该版本。

IE 7:

<meta http-equiv="X-UA-Compatible" value="IE=7"> 

IE 8:

<meta http-equiv="X-UA-Compatible" value="IE=8"> 

IE 9:

<meta http-equiv="X-UA-Compatible" value="IE=9"> 
  

如果客户访问的视图模式高于其支持的页面   (例如,IE 7浏览器查看要求IE8查看模式的页面),它   将忽略标记并将页面呈现为它将具有的模式   没有标签。

更多信息请点击此处:http://webdesign.about.com/od/internetexplorer/qt/force-compatibility-view-in-ie.htm