Я нашел это решение для печати:
function Print() {
if (document.queryCommandSupported('print')) {
document.execCommand('print', false, null);
}
else {
window.parent.<framename>.focus();
window.print();
}
}
Хотя у меня несколько фреймов, а не один. Как лучше всего написать это для нескольких фреймов?
Нет. В этом проблема. Моя текущая кнопка печати предназначена для нескольких фреймов:
функция printall() { window.print(); for (var i=0; i<window.frames.length; i++) { alert('Нажмите здесь ПОСЛЕ того, как вы отправили документ ' + (i+1) + ' на принтер.'); window.frames[i].focus(); окно.frames[i].print(); } }
Я пытаюсь включить document.execCommand('print', false, null), а не то, что у меня есть
Вы имеете в виду, что хотите использовать метод document.execCommand() для каждого iframe и печатать каждый iframe один за другим?
Не один за другим. Все на одной странице. Или это невозможно с document.exec? Как цикл по всем кадрам.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


На мой взгляд, document.execCommand('print', false, null) аналогичен методу window.print(), вы можете использовать любой из них для печати всей страницы.
<script type = "text/javascript">
function printPage() {
window.print();
//document.execCommand('print', false, null);
////print each frames
//for (var k = 0; k < window.frames.length; k++) {
// window.frames[k].focus();
// window.frames[k].print();
//}
}
</script>
Это работает. Спасибо за ответ. Хотя я до сих пор, к сожалению, не могу печатать в pdf, т.е. как я думал, заменив window.print на document.execCommand
Ваша команда печати выполняется из iframe?