【问题标题】:Display only print Dialog while printing in Javascript在 Javascript 中打印时仅显示打印对话框
【发布时间】:2013-11-18 15:49:56
【问题描述】:

JavaScript

function printDiv(divP) {
    var win = window.open();
    win.document.write($(divP).html());
    win.print();
}

在这里,我正在使用 Javascript 打印 Div 的内容。 此代码将打开一个窗口以及打印对话框。 如何只打开打印对话框而不显示窗口。 谢谢大家。

【问题讨论】:

  • 你用window.open()打开了一个新窗口,但你不想打开一个新窗口?
  • 我想他想在不打开窗口的情况下打印一些 html,只显示打印对话框。
  • 这不会发生。 JavaScript 中没有隐藏窗口之类的东西——如果它打开了,它就在那里。我认为您可以打印隐藏的iframestackoverflow.com/questions/14810181/…

标签: javascript jquery


【解决方案1】:

Live example(点击链接会打开打印对话框而不打开新窗口)

正如所指出的,您可以打印隐藏的 iframe,如参考this

function printDiv(divId) {
    window.frames["print_frame"].document.body.innerHTML=document.getElementById(divId).innerHTML;
    window.frames["print_frame"].window.focus();
    window.frames["print_frame"].window.print();
}
<b>Div 3:</b> <a href="javascript:printDiv('div3')">Print</a><br>
<div id="div3">This is the div3's print output</div>
<iframe name="print_frame" width="0" height="0" frameborder="0" src="about:blank"></iframe>

【讨论】:

  • chrome 中的一些问题。打印空。
【解决方案2】:

这里有一些示例代码展示了如何打印隐藏的 iframe


var ifr = document.createElement('iframe');
var html = '<p>hello world</p>';

ifr.src = 'about:blank';
ifr.setAttribute('style', 'display: none;');
ifr.onload = function (event) {
    ifr.contentDocument.body.innerHTML = html;
    ifr.contentWindow.print();
};

document.body.appendChild(ifr);

【讨论】:

    猜你喜欢
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多