window.print()打印,勾选的按钮打印不了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.print()打印,勾选的按钮打印不了相关的知识,希望对你有一定的参考价值。

window.print()打印,勾选的按钮打印不了答案是Window printer打印勾选按钮,如果打印不了的话,可能是这个window的这个坏掉了,呃,我们在日常生活中可能总会遇到这些问题,如果他用不了,我们就可以维修一下,或者你自己用不了就可以去,专门的维修费也没写。 参考技术A 、首先先确认打印机型号(打印机机身上标签会标注型号),百度搜索 型号 驱动 找到第三方驱动提供网站或找到打印机品牌官网,找到下载服务、驱动下载等,然后输入型号进行查找下载,推荐在官网下载驱动,如果实在找不到可以到打印机驱动网(http://www.dyjqd.com/)下载。

2、驱动下载界面自动获取电脑系统,如果需要为其他的操作系统下载驱动可以点击更改进行选择,为当前电脑下载驱动则直接点击下载即可。

3、部分驱动支持默认安装下一步即可安装过程中自动检测打印机,此处讲解文件包手动安装驱动,将下载好的驱动程序压缩包解压至桌面,解压完成后打开文件夹即可看到所需要安装的驱动文件,一般选择 Setup 进行

window.print() 和 window.close() 函数 Safari IOS 关闭窗口而不等待打印预览

【中文标题】window.print() 和 window.close() 函数 Safari IOS 关闭窗口而不等待打印预览【英文标题】:window.print() and window.close() function Safari IOS closing window without waiting for print preview 【发布时间】:2018-12-24 17:30:58 【问题描述】:

在 IOS 的 Safari 中,打印和关闭 JavaScript 功能似乎不像其他浏览器那样工作。如果您单独致电window.print(),它似乎可以工作。但是,如果您在之后立即调用window.close(),它似乎会关闭窗口并打印预览,尽管打印预览窗口仍处于打开状态,但它不会等待打印预览完成或取消以关闭窗口而只是关闭窗户立即打开。

我创建了一个用于打印表格的按钮。它在新窗口中打开表格并打开打印功能,并等待一点时间让浏览器打开页面并呈现表格。打印完成后它应该关闭窗口。

提示:如果您有 Mac 和 Xcode,您可以打开 iPhone 模拟器并通过启动服务器 python -m SimpleHTTPServer 8000 使用 python 访问本地主机。要访问模拟器,请打开 Xcode,然后 Xcode > Open Developer Tools > Simulator

代码如下:

<!DOCTYPE html>
<html>
<head>
<style>
table 
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;


td, th 
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;


tr:nth-child(even) 
  background-color: #dddddd;

</style>
</head>
<body>
<table class="table">
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
  <tr>
    <td>Ernst Handel</td>
    <td>Roland Mendel</td>
    <td>Austria</td>
  </tr>
  <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
  <tr>
    <td>Laughing Bacchus Winecellars</td>
    <td>Yoshi Tannamuri</td>
    <td>Canada</td>
  </tr>
  <tr>
    <td>Magazzini Alimentari Riuniti</td>
    <td>Giovanni Rovelli</td>
    <td>Italy</td>
  </tr>
</table>

<button onclick="myPrintFunction()">Click me</button>

<script>
  function myPrintFunction() 
    let divToPrint = document.getElementsByClassName("table")[0];
    if (typeof divToPrint !== 'undefined') 
      let newWin = window.open();
      newWin.document.write('<h1>PRINT FRIENDLY</h1>');
      newWin.document.write(divToPrint.outerHTML);
      newWin.document.close();
      newWin.focus();
      setTimeout(()=>
        newWin.print();
        newWin.close();
      , 1000);
     else 
      alert('NO EVENTS TO PRINT!');
    
  
</script>

</body>
</html>

【问题讨论】:

在将 ios 升级到最新版本后我遇到了同样的问题。你找到解决办法了吗? 没有。我想出的唯一解决方案是检查浏览器是否是 ios 中的 safari,而不是关闭窗口。 【参考方案1】:

我避免使用 write(),因为它删除了 DOM。然后我添加了打印和关闭按钮。为了避免这些被渲染,我让它们消失并在 10 秒后重新出现。

// detect Safari
if (navigator.userAgent.indexOf("Safari") !== -1) 
  // make print button
  const print_button = document.createElement('button');
  const print_button_text = document.createTextNode("Print");
  print_button.appendChild(print_button_text);
  print_button.addEventListener(
    "click",
    function() 
      // hide the buttons before printing
      print_button.style.display = 'none';
      close_button.style.display = 'none';
      newWindow.print();
      // delay reappearing of the buttons to prevent them from showing on the print
      setTimeout(() => 
        print_button.style.display = 'block';
        close_button.style.display = 'block';
      , 10000);
    ,
    false
  );
  // make close button
  const close_button = document.createElement('button');
  const close_button_text = document.createTextNode('Close');
  close_button.appendChild(close_button_text);
  close_button.addEventListener(
    "click",
    function() 
      newWindow.close();
    ,
    false
  );
  newWindow.document.body.appendChild(print_button);
  newWindow.document.body.appendChild(close_button);
;

【讨论】:

以上是关于window.print()打印,勾选的按钮打印不了的主要内容,如果未能解决你的问题,请参考以下文章

java实现打印前台页面

打印不显示打印按钮及获取其他属性

window.print()打印页面指定内容(使用iframe保证原页面不失效)

window.print() 在 IE\Firefox 中不显示相同的打印屏幕 HTML

JavaScript在表单页面添加打印功能,打印表单中的值并打印完成后不刷新页面

window.print() 和 window.close() 函数 Safari IOS 关闭窗口而不等待打印预览