远程文件的IE9中的window.print()出现问题



我有一个HTML,它在对象标记中嵌入了一个SVG文件。

此文件通过文件协议从共享远程位置访问,并在IE(IE9或最新版本)上访问。

我已经进行了更改,以在按下"p"键时触发window.print(),也可以执行ctrl + P,这将显示打印对话框。

我观察到,对于上述场景(在IE9上远程访问文件),在这两种情况下打印质量都有很大差异。

我们可以通过打印成PDF进行检查。

有人能解释一下两者之间的区别吗?我应该怎么做才能让window.print()像我们做ctrl + P一样工作?

<!-- DOCTYPE HTML -->
<HTML>
<HEAD><TITLE>Print</TITLE>
<META content="text/html; charset=UTF-8" http-equiv=Content-Type>
<SCRIPT type=text/javascript src="jquery.js"></SCRIPT>
<SCRIPT type=text/javascript>
function printProcess() {
jQuery(document).bind("keyup", function(e){    
if(e.keyCode == 80){
p();
}
});
}       
function p(){
window.print();
}
</SCRIPT>
</HEAD>
<BODY style="WIDTH: 100%;HEIGHT: 100%" onload="printProcess();" >
<DIV style="HEIGHT: 100%" id="printableDiv" >
<OBJECT data="test.svg" width="100%" type="image/svg+xml" height="100%">
</OBJECT>
</DIV>
</BODY>
</HTML>

对于感兴趣的人,以下是答案。通过添加来解决问题

<META http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

感谢Vitor Canova

使用以下函数:

function print_me(idx)
{
var browser = navigator.userAgent;
if(browser.indexOf('MSIE')>=0){
document.execCommand('print', false, null);
}
else{
window.print();
}
}//end func...

基本上,我们需要在MSIE上以不同的方式调用print方法。。。

相关内容

  • 没有找到相关文章

最新更新