window.print()就像它会打印但没有做任何事情

时间:2016-04-08 16:41:43

标签: javascript html css printing

我正在尝试打印一个简单的文档,但没有打印任何内容。当我单击打印按钮时,它会将其添加到打印队列中,几乎立即离开队列但没有任何反应。打印机甚至不会像打印一样。我有一个print.css

@media print{
  * {
    display: none;
  }

  #preview {
    display: inline;
  }
  #preview input {
    display: none;
  }
}

我添加了

<link rel="stylesheet" href="print.css" type="text/css" media="print" />

到我的HTML。它拉出打印菜单,表现得像打印但什么都不做。我之前从未尝试过这样做,所以我可能只是错过了一个关键方面,但同时它似乎是正确的。

按钮代码

<input type="button" onclick="window.print()" value="print" />

预览是我尝试打印的div(我在函数中添加了innerHTML)

<body style="background-color: white; height: 100%; width: 100%" onload="buildForm()">
  <aside id="overlay">
    <section onclick="modal()"></section>
    <div id="preview"></div>
  </aside>

这也是一个电子应用程序,如果它与它有任何关系。是的,打印机确实有效。假设有要打印的内容,我可以从其他来源打印。

由于此处有大量代码,因此jsfiddle可帮助您解决问题。 注意这不会起作用,因为它在代码中有节点模块,因为它是一个电子应用程序

2 个答案:

答案 0 :(得分:2)

尝试此更改:

HTML

<div id="preview"></div>

CSS

@media screen {
  #preview { display: none; }
}
@media print{
  * {
    display: none;
  }

  #preview {
    display: inline;
  }
  #preview input {
    display: none;
  }
}

答案 1 :(得分:2)

您还需要取消隐藏所有#preview个孩子:

body * {display: none;}
#preview, #preview * {display: initial !important;}