仅使用url打印网页并且不打开新窗口?

仅使用url打印网页并且不打开新窗口?

问题描述:

<html> 
<head> 
<script type="text/javascript"> 
    var URL = "http://localhost:8000/foobar/"; 
    var W = window.open(URL); **Note1** 
    W.window.print(); 

</script> 
</head> 
<p> Print ME...............</p> 
</html> 

我正在使用此脚本来打印网页。 我的意见渲染这个页面和JS照顾所有其他事情。仅使用url打印网页并且不打开新窗口?

但我不想为此打开新窗口。那么,我应该使用什么来代替window.open(URL),因此no new window会打开。同样,我不想为print function打开新窗口。因此,每当我渲染此页面时,它都会在同一页面上执行所有操作。没有新窗口,没有新标签。我怎样才能做到这一点。我谷歌,但似乎没有工作。

您可以使用隐藏的iFrame(我使用jQuery的例子)做到这一点:

function loadOtherPage() { 

    $("<iframe>")        // create a new iframe element 
     .hide()        // make it invisible 
     .attr("src", "/url/to/page/to/print") // point the iframe to the page you want to print 
     .appendTo("body");     // add iframe to the DOM to cause it to load the page 

} 

这将加载要打印的页面。要打印,您可以将JavaScript代码添加到打印页面以便在加载后打印:

$(document).ready(function() { 
    window.print(); 
}); 

这将打印页面而不显示新窗口。我已经在IE8,9和谷歌浏览器中测试过了,所以我不确定这是否适用于Safari或Firefox。

+0

谢谢!完美的作品! –

+0

在“/ url/to/page/to/print”中,可以直接输入我的html代码吗? –

+1

@VitorGuerreiro:是的,你想打印的HTML代码应该在那个URL;该HTML代码应该也有答案中提到的javascript代码(与window.print(); – andragon

function CallPrint() { 
     var prtContent = document.getElementById('main'); 
     var WinPrint = window.open('', '', 'width=800,height=650,scrollbars=1,menuBar=1'); 
     var str = prtContent.innerHTML; 
     WinPrint.document.write(str); 
     WinPrint.document.close(); 
     WinPrint.focus(); 
    } 

呼吁打印按钮单击此JavaScript函数。“主”是我们有没有开打印到新的window.I要通知,这将打印当前页面的div的div ID。 如有任何问题,请尝试并切换。
谢谢
Gourav

+0

不工作。 – 2015-03-13 08:22:45

有上MDN一个很好的例子,如何做到这一点与我隐藏iframehttps://developer.mozilla.org/en-US/docs/Printing#Print_an_external_page_without_opening_it

+0

它仅在Mozzila Firefox 34.0中不起作用。 –