2016-05-21 128 views
0
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"></script> 
<script type="text/javascript"> 
    var doc = new jsPDF(); 
    var specialElementHandlers = { 
     '#editor': function (element, renderer) { 
      return true; 
     } 
    }; 

    $('#cmd').click(function() { 
     doc.fromHTML($('#content').html(), 15, 15, { 
      'width': 170, 
       'elementHandlers': specialElementHandlers 
     }); 
     doc.save('sample-file.pdf'); 
    }); 
</script> 
<div id="content"> 
    <h3>Hello, this is a H3 tag</h3> 

    <p>a pararaph</p> 
</div> 
<div id="editor"></div> 
<button id="cmd">generate PDF</button> 

我的代碼工作中的jsfiddle罰款,但沒有在本地主機的工作我都提到了我的所有代碼,所以它會很容易理解我在做什麼jsPDF在本地主機不工作

回答

0

的問題是訂單你的HTML,您的標記更改爲:

<div id="editor"></div> 
    <button id="cmd">generate PDF</button> 
    <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> 
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"></script> 
    <script type="text/javascript"> 
     var doc = new jsPDF(); 
     var specialElementHandlers = { 
      '#editor': function (element, renderer) { 
       return true; 
      } 
     }; 

     $('#cmd').click(function() { 
      console.log("Hola"); 
      doc.fromHTML($('#content').html(), 15, 15, { 
       'width': 170, 
        'elementHandlers': specialElementHandlers 
      }); 
      doc.save('sample-file.pdf'); 
     }); 
    </script> 
    <div id="content"> 
     <h3>Hello, this is a H3 tag</h3> 

     <p>a pararaph</p> 
    </div> 

沒有被觸發的單擊事件,因爲要加入的是聽衆的東西,不存在。代碼工作,即使在file://協議中也是如此。隨着jsFiddle的作品,因爲標記是由應用程序自動呈現。