javascript
  • jquery
  • html
  • pdf
  • jspdf
  • 2014-03-26 19 views 0 likes 
    0

    我要生成使用jsPDF一个div一个PDF文件,它工作在静态代码无瑕,但我想这样做与生成代码,就像这样:PDF通过jQuery一个产生DIV的,使用jsPDF

    <button id = "click">Click</button> 
    <div id = "here"></div> 
    
    <script type="text/javascript"> 
    $("#click").click(function(){ 
        var write = '<div id = "example">Hello</div><button id = "click_pdf">PDF</button>'; 
        $("#here").html(write); 
    }); 
    
    $("#click_pdf").click(function(){ 
        var doc = new jsPDF; 
        doc.fromHTML($("#example").get(0),10,10,{ 
        'width': 180 
        } 
        doc.save("Test.pdf"); 
    }); 
    </script> 
    

    但不工作,而不是永远在控制台中显示错误消息

    此外,我试图改变一个onclick事件,而不是jQuery的事件,就像这样:

    var write = '<div id = "example">Hello</div><button onclick = click_pdf()>PDF</button>'; 
    ... 
    function click_pdf(){ 
        var doc = new jsPDF; 
        ... 
    } 
    

    在这种情况下,会出现一个“未被捕获的T ypeError:无法读取未定义的“#”属性错误。我试着生成函数click_pdf()或$(“#click_pdf”)。点击$(“#click”)。click函数没有结果。 任何想法?

    回答

    1

    试试这个:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
        <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"></script> 
        <script> 
    
        $(function(){ 
        $("#click").click(function(){ 
         var write = '<div id = "example">Hello</div><button id= "click_pdf">PDF</button>'; 
         $("#here").html(write); 
        }); 
        $(document).on("click","#click_pdf",function(){ 
         var doc = new jsPDF; 
    var specialElementHandlers = { 
        '#editor': function (element, renderer) { 
         return true; 
        } 
    }; 
         doc.fromHTML($('#example').html(), 15, 15, { 
          'width': 170, 
          'elementHandlers': specialElementHandlers 
         }); 
         doc.save("Test.pdf"); 
        }); 
        }); 
    
        </script> 
    
    
        <input type="button" id="click" value="Click!"/> 
        <div id="here"></div> 
    

    DEMO

    相关问题