2017-06-17 118 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是我的。 –