2017-06-17 152 views
0

單擊「打印」按鈕後,我會看到一個打印對話框。打印預覽顯示在Chrome網頁

實際結果: 當我點擊Cancel在打印對話框中,它顯示在網頁的打印預覽。

預期結果: 我想要的是在打印對話框之前顯示我的實際網頁。

代碼印刷:

function printMap(){ 
    var printMapOnly = document.getElementById('regions_div').innerHTML; 
    document.body.innerHTML = printMapOnly; 
    window.print(); 
    } 

打印按鈕:

<button class="btn btn-print" onclick="printMap('regions_div')">Print</button> 
+0

當您將該頁面元素設置爲「document.body.innerHTML」時,您正在刪除原始頁面內容。你可以嘗試[CSS打印樣式表](https://www.smashingmagazine.com/2011/11/how-to-set-up-a-print-style-sheet/),或多或少地隱藏你不想要的東西,我想打印。 –

+0

而不是經歷所有的過程,我不能將'document.body.innerhtml'設置爲它之前的狀態? – Zane

回答

1

基於this設置我的網頁的內容恢復到原來的內容

更新時間:

function printMap(){ 
    var originalContent = document.body.innerHTML 
    var printMapOnly = document.getElementById('regions_div').innerHTML; 
    document.body.innerHTML = printMapOnly; 
    window.print(); 

    document.body.innerHTML = originalContent; 
    } 

希望它可以幫助別人。

+0

該技術的問題在於它沒有考慮到具有任何行爲的HTML,例如事件處理程序等。這通常會以非常簡單的主要佈局網站爲主,但應預先警告。 –

+0

我知道它的缺點,但我工作的網站相當簡單。所以,不應該是一個問題。如果發生任何事情,總會有解決方案B – Zane

+0

我正在爲其他人解決問題。 upvote是我的。 –