我有一个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方法。。。