Я думаю, вы ищете window.print()
Обновление
Только что заметили, что вы указали там имена файлов и что вы хотитепечатать print.html
при нажатии кнопки на index.html
.Нет встроенного способа сделать это (в том смысле, что вы не можете передать никакие аргументы window.print()
, указывающие на документ для печати).Что вы можете сделать, это загрузить документ для печати в iframe или открыть новое окно и при загрузке вызвать window.print()
для этого контейнера.
Вот несколько сообщений на форуме и веб-страниц, которые говорят об одном и том же:
Обновление 2
Вот некоторый быстрый и грязный код - обратите внимание, что это будет работать, только если обе ваши страницы находятся в одном домене.Кроме того, Firefox, похоже, запускает событие load
и для пустого iframe - поэтому диалоговое окно печати будет отображаться немедленно при загрузке, даже если для iframe не было установлено значение src
.
index.html
<html>
<head>
<title>Index</title>
<script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script>
$(document).ready(function(){
$('#loaderFrame').load(function(){
var w = (this.contentWindow || this.contentDocument.defaultView);
w.print();
});
$('#printerButton').click(function(){
$('#loaderFrame').attr('src', 'print.html');
});
});
</script>
<style>
#loaderFrame{
visibility: hidden;
height: 1px;
width: 1px;
}
</style>
</head>
<body>
<input type="button" id="printerButton" name="print" value="Print It" />
<iframe id="loaderFrame" ></iframe>
</body>
</html>
print.html
<html>
<head>
<title>To Print</title>
</head>
<body>
Lorem Ipsum - this is print.html
</body>
</html>
Обновление 3
Вы также можетехочу увидеть это: Как мне распечатать IFrame из javascript в Safari / Chrome