2017-06-12 6 views
0

私はこの方法があります:印刷ダイアログでキャンセルをクリックするとタブを閉じる方法は?

print(data): void{ 
    let printContents, popupWin; 
    let trHtml = ''; 
    for (let entry of data) { 
     trHtml += `<tr> 
         <td>` + entry.aaabroj + `</td> 
         <td>` + entry.bbbbroj + `</td> 
         <td>` + entry.sifratipa + `</td> 
         <td>` + entry.vrijemepoziva + `</td> 
         <td>` + entry.trajanjepoziva + `</td> 
         <td>` + entry.iznoskm + `</td> 
        </tr>`; 
    } 
    window.open('', 'popupWin', ''); 
    window.print(); 
    popupWin.document.write(` 
    <html> 
     <head> 
     <title>Detaljni izvještaj</title> 
     <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> 
     <tr> 
      <th>Pretp.broj</th> 
      <th>Pozvani broj</th> 
      <th>Tip poziva</th> 
      <th>Start</th> 
      <th>Količina</th> 
      <th>Cijena</th> 
     </tr> 
     `+trHtml+` 
     </table> 
    </body> 
    </html>`); 
    } 

は、今私は、印刷ダイアログでテーブルを開くが、それをキャンセル近い印刷ダイアログが、タブの際にユーザーがクリックがまだ開いているが。どのように私はそのタブを閉じることができますどのような提案?

答えて

0

通常のウェブページからChromeの内部ウィンドウ(この場合は印刷ダイアログ)に直接アクセスすることはできません。

(function() { 

    var beforePrint = function() { 
     alert('Functionality to run before printing.'); 
    }; 

    var afterPrint = function() { 
     alert('Functionality to run after printing'); 
    }; 

    if ($window.matchMedia) { 
     var mediaQueryList = $window.matchMedia('print'); 

     mediaQueryList.addListener(function (mql) { 
      if (mql.matches) { 
       beforePrint(); 
      } else { 
       afterPrint(); 
      } 
     }); 
    } 

    $window.onbeforeprint = beforePrint; 
    $window.onafterprint = afterPrint; 

}()); 

参考:How to capture the click event on the default print menu called by Javascript window.print()?

はここに、この特定のコードをテストしたが、前に似た何かをしたていないことがあります。

関連する問題