Javascript window.print()的行为类似于打印,但不执行任何操作

Javascript window.print()的行为类似于打印,但不执行任何操作,javascript,html,css,printing,Javascript,Html,Css,Printing,我试图打印一个简单的文档,但没有打印任何内容。当我单击“打印”按钮时,它会将其添加到打印队列,并几乎立即离开队列,但什么也没有发生。这台打印机甚至都不像要打印一样。我有一个print.css @media print{ * { display: none; } #preview { display: inline; } #preview input { display: none; } } 我补充说 <link rel="styleshe

我试图打印一个简单的文档,但没有打印任何内容。当我单击“打印”按钮时,它会将其添加到打印队列,并几乎立即离开队列,但什么也没有发生。这台打印机甚至都不像要打印一样。我有一个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" />

Preview是我试图打印的div(我在函数中添加innerHTML)


来帮助打破它注意这不起作用,因为它是一个电子应用程序,代码中有节点模块

请尝试以下更改:

HTML

尝试以下更改:

HTML


您还需要取消隐藏所有
#预览
子项:

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

您还需要取消隐藏所有
#预览
子项:

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


原来这是Electron的一个问题,因为0.37.x是在缺少pdf.dll的情况下发布的。您可以从发行版复制它并将其添加到dist文件夹。在那之后工作得很有魅力。

发现这是Electron的一个问题,因为0.37.x是在缺少pdf.dll的情况下发布的。您可以从发行版复制它并将其添加到dist文件夹。这可能是问题所在,它隐藏了一切:`*{display:none;}`.@Mottie它隐藏了一切,但它应该取消隐藏#预览,因为它在*之后,还是它隐藏了需要的东西,如中的东西?即使使用*goneInline样式,它仍然无法打印,例如
可能不会被css定义覆盖。尝试在
@screen{}
媒体包装器中设置
display:none
。添加
Important
,并尝试从注释中查看其他一些内容。请发布HTML标记和任何其他CSS。此CSS可能是问题所在,它隐藏了所有内容:`*{display:none;}`.@Mottie它隐藏了所有内容,但它应该取消隐藏#预览,因为它位于*之后,还是它隐藏了需要的内容,如中的内容?即使使用*goneInline样式,它仍然无法打印,例如
可能不会被css定义覆盖。尝试在
@screen{}
媒体包装器中设置
display:none
。添加
Important
,并尝试从注释中查看其他一些内容。请发布HTML标记和任何其他CSS。正是我在键入so+1的过程中所做的,直到没有修复它。仍然是相同的结果。老实说,最好不要使用
*{display:none;}
,而是以要隐藏的元素为目标。即使没有这些,在另一个元素中也是相同的结果是
#preview
?将它添加为
()的直接后代,这正是我在键入so+1的过程中所做的,直到没有修复它。仍然是相同的结果。老实说,最好不要使用
*{display:none;}
,而是以要隐藏的元素为目标。即使没有这些,在另一个元素中也是相同的结果是
#preview
?将其添加为
()的直接后代,我原以为这将是解决方案,但仍然一无所获。同样的results@SirParselot更新后是否确保清除缓存的CSS?我创建了一个简化的示例,并能够正确打印。也许有更多的CSS在影响它。您是否尝试过打开DevTools,并将渲染器设置为使用打印介质以便可以检查元素?据我所知,这是一个电子应用程序,因此没有缓存。我也不知道如何设置渲染器来使用打印media@SirParselot打开Chrome,打开开发工具(SHIFT+CTRL/CMD+J),单击顶部菜单右侧的垂直椭圆(三个点),选择更多工具…,选择渲染设置,启用“模拟打印介质”选项根据打印介质,它应该可以正常工作。我希望打印的所有内容都在那里。我打开了一个关于Electron的问题,因为我认为问题就在那里。我以为这会是解决办法,但仍然没有任何结果。同样的results@SirParselot更新后是否确保清除缓存的CSS?我创建了一个简化的示例,并能够正确打印。也许有更多的CSS在影响它。您是否尝试过打开DevTools,并将渲染器设置为使用打印介质以便可以检查元素?据我所知,这是一个电子应用程序,因此没有缓存。我也不知道如何设置渲染器来使用打印media@SirParselot打开Chrome,打开开发工具(SHIFT+CTRL/CMD+J),单击顶部菜单右侧的垂直椭圆(三个点),选择更多工具…,选择渲染设置,启用“模拟打印介质”选项根据打印介质,它应该可以正常工作。我希望打印的所有内容都在那里。我提出了一个关于电子的问题,因为我认为问题就在那里。
@media screen {
  #preview { display: none; }
}
@media print{
  * {
    display: none;
  }

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