Chrome и window.print()

Опубликовано

Был слегка удивлен тому, что одна из самых простых функций – отправки страницы на печать – не сработала в браузере Google Chrome.
Хотя в других браузерах, строчка кода помещенная в head страницы, работала на отлично.

<script type="text/javascript">window.print();</script>

Немного покопавшись в инете, нашел решение данной проблемы: оказывается функция “print” запускается не сразу. Поэтому решение быстро нашлось:

<script type="text/javascript">setTimeout("window.print()", 500);</script>

Вот так и вызываю страницу на печать.

UPD: Более правильное решение представил Виталий

Нужно дождаться загрузки HTML контента:

вместо window.print();

ставим

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

и все работает (естественно если jQuery подрублен) для чистого js:

window.onload = function(){
 window.print();
}

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on VK
  • Виталий

    Нужно дождаться загрузки HTML контента:

    вместо window.print();

    ставим

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

    и все работает (естественно если jQuery подрублен) для чистого js:

    window.onload() = function(){
    window.print();
    }

    • Спасибо, сделал обновление статьи.

  • Ульяна

    Спасибо!!! Выручили!!!!

  • Илья

    Добавлю немного.

    Если у вас стоит после вывода на печать стоит переход на другую страницу (возврат на предыдущую), по функции location.replace, то onload надо вешать на него, иначе print будет срабатывать через раз.