首页 > 解决方案 > 使用 javascript 将 HTML 页面导出为 PDF 时页面卡住

问题描述

嗨,我有一个使用 javascript 将 HTML 页面转换为带有 CSS 的 PDF 的代码,问题是当我单击按钮时页面卡住并停止响应。

下面是生成 TABLE 的脚本

$(document).ready(function(){
 $('#load_data').click(function(){
  $.ajax({
   url:"OutputNew.csv",
   dataType:"text",
   success:function(data){
    var employee_data = data.split(/\r?\n|\r/);
    var table_data = '<div class="dropdown"><button class="dropbtn">Download</button><div class="dropdown-content"><a href="javascript:CreatePDF()">Download PDF</a></div></div><input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.."><div id="VMTable"><div id="content"><table id="myTable" class="table table-striped"">';
    
    for(var count = 0; count<employee_data.length; count++) {
     var cell_data = employee_data[count].split(',');
     table_data += '<tr>';
     for(var cell_count=0; cell_count<cell_data.length; cell_count++){
      if(count === 0){
       table_data += '<th id="headers">'+cell_data[cell_count]+'</th>';
      }else{
          if(cell_data[cell_count] .includes("Not Matching")){
                var ret = cell_data[cell_count].replace('Not Matching','');
                if (ret == ""){
                    table_data += '<td>'+ret+'</td>'
                }else{
                  table_data += '<td data-color="green"><span style="color:red">'+ret+'</span></td>';
                }
          }else if(cell_data[cell_count] .includes("Matching")){
                var ret = cell_data[cell_count].replace('Matching','');
                if (ret == ""){
                  table_data += '<td>'+ret+'</td>'
                }else{
                  table_data += '<td data-color="green"><span class="badge-complete">'+ret+'</span></td>';
                }
          }else{
              table_data += '<td>'+cell_data[cell_count]+'</td>';
          }
      }
     }
     table_data += '</tr>';
    }
    table_data += '</table></div>';
    
    $('#employee_table').html(table_data);
   }
  });   
 }); 
});

这里是表格的显示位置:

<div class="container">
   <div class="table-responsive">
   <!-- <img src="banner.png" id="banner"> -->
    <h1 id ="Heading">Validator</h1>
    <br />
    <div id ="loadbutton">
     <button type="button" name="load_data" id="load_data" class="btn btn-info">Load Data</button>
    </div>
    <br />
    <div id="employee_table">
    </div>
    </div>
   </div>
  </div>

将 HTML 页面导出为 PDF 的代码

function CreatePDF(){
    let doc = new jsPDF('p','pt','a4');

  doc.addHTML(document.body,function() {
      doc.save('html.pdf');
  });
}

所以当我点击下载按钮时,它会卡住并且没有显示错误。

标签: javascriptajaxjspdf

解决方案


推荐阅读