2013-11-22 81 views
0

我正在使用jquery插件來打印我的網頁的特定div。它在Firfox和IE中工作正常。但不幸的是,它不適用於Google Chrome。實際上谷歌瀏覽器正在打印包括橫幅,菜單和按鈕的完整網頁。我無法解決這個問題。Google chrome打印問題

這裏是我的示例代碼

Java腳本

$(function() { 
    $("input:button").click(function() { 
     $("#print").printThis(); 
    }); 
}); 

HTML

<body> 
<input type="button" value="print" /> 
<div id="print"> 
this is print area, it can be everything. this is print area, it can be everything. this is print area, it can be everything. this is print area, it can be everything. this is 
</div> 
</body> 
+0

這將有助於知道您使用的是哪個插件。無論如何,在大多數情況下,使用CSS來定義可打印區域是最容易的,除非您打算在打印整個頁面的同時提供單獨的打印部分。 – JJJ

回答

0

您可以使用 「純」 的jQuery做同樣的:

//Begin browser detection section 
var isOpera = !! window.opera || navigator.userAgent.indexOf(' OPR/') >= 0; 
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera) 
var isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+ 
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0; 
// At least Safari 3+: "[object HTMLElementConstructor]" 
var isChrome = !! window.chrome && !isOpera; // Chrome 1+ 
var isIE = false || !! document.documentMode; // At least IE6 
    //End browser detection section 

    //User click on something 
$('a[href="#print"]').on("click", function() { 
    var data = "<div> a lot of HTML code from AJAX call or from your DIV </div>"; 
      CreateWindow(data); 
}); 


function CreateWindow(data) { 
    var mywindow = window.open('about:blank', '_blank'); 
    var myWindowContents = '<html>' + 
     '<head>' + 
     '<title>Results</title>' + 
     '<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" type="text/css">' + 
     '</head>' + 
     '<body >' + data + 
     '<script src="http://code.jquery.com/jquery-2.1.0.min.js type="text/javascript">' + '<' + '/script>' + 
     '<script type="text/javascript">' + 
     '$(document).ready(function() {' + 
     '});' + 
     '<' + '/script>' + 
     '</body>' + 
     '</html>'; 
    mywindow.document.write(myWindowContents); 
    mywindow.document.close(); 
    mywindow.focus(); 
    if (!isChrome) { 
     mywindow.print(); 
    } 
} 

您還可以看看我的代碼在這裏http://jsfiddle.net/pvkovalev/2pn4p/ 我認爲它會給你一個想法如何解決您的問題。