Подтвердить что ты не робот

Печать веб-страницы с использованием только 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>

Я использую этот script для печати веб-страницы. Мои представления отображают эту страницу, и JS позаботится обо всех других вещах.

Но я не хочу открывать для этого новое окно. Итак, что я должен использовать вместо window.open(URL), поэтому no new window открывается. Точно так же я не хочу открывать новое окно для print function. Так, всякий раз, когда я делаю эту страницу, он делает все на одной странице. Нет нового окна, нет новой вкладки. Как я могу это достичь. Я google, но ничего не работает.

4b9b3361

Ответ 1

Вы можете сделать это, используя скрытый 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 и Google Chrome, поэтому я не уверен, работает ли это для Safari или Firefox.

Ответ 3

 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 при нажатии кнопки "Печать". "main" - это идентификатор div, который мы должны печатать, не открываясь в новое окно. Я хочу уведомить, что это будет печатать текущий div. Попробуйте и ответьте в случае возникновения каких-либо проблем.
Спасибо,
Gourav