2013-12-12 74 views
0

jQuery的打印一個div在Chrome和Safari

$(function(){ 
    $("#btnPrint").click(function(){ 
     var mydiv = document.getElementById("printDiv"); 
    printDiv(mydiv); 
    }); 

    }); 

    function printDiv(divP) { 

       window.frames["print_frame"].document.body.innerHTML = $(divP).html(); 
       window.frames["print_frame"].window.focus(); 
       window.frames["print_frame"].window.print(); 

      } 

HTML

<iframe name="print_frame" width="0" height="0" frameborder="0" src="about:blank"> 
     </iframe> 

<div id="printDiv"> 
//some content here 
</div> 

<input type="button" id="btnPrint" value="Print"/> 

上面的代碼是工作在IE和Mozilla,但在Safari,丁目和Opera不工作?請幫忙..

+0

它的工作原理很抱歉對我來說很好(鉻31.0.1650.63)也許你有其他一些JS錯誤或在頁面上? –

+0

「不工作」意味着什麼?它做什麼,它應該做什麼? [JavaScript錯誤控制檯](http://www.netmagazine.com/tutorials/javascript-debugging-beginners)中是否存在錯誤? – JJJ

+0

沒有錯誤。它正在打印白頁。 – Billy

回答

2

看起來這個演示的目的是打印只有一個div,是否正確?

如果是這樣,它是easiest to use media queries一個跨瀏覽器解決方案

http://jsfiddle.net/Nu5SX/2/

@media print { 
    body * { 
     visibility: hidden; 
    } 
    #printDiv, #printDiv * { 
     visibility: visible; 
    } 
    #printDiv { 
     position: absolute; 
     left: 0; 
     top: 0; 
    } 
} 

簡單的JavaScript

window.print(); 

編輯:對於說話像大眼夾:)

+0

謝謝,但我想默認情況下隱藏printDiv。只是結帳:http://jsfiddle.net/Nu5SX/3/ – Billy

+1

我用修改後的版本在網上打印頁面的特定部分。感謝您的靈感! – Tim

+0

感謝您的評論! – roo2