html到pdf转换器出现意外错误的示例

时间:2016-06-19 11:45:19

标签: javascript jquery pdf jspdf

此示例正在运行附加小提琴的副本(示例正常运行)。我很惊讶复制同样是抛出错误。为什么?

HTML:

<html>
<head> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js"></script>
<script>
var doc = new jsPDF();
var specialElementHandlers = {
    'body': function (element, renderer) {
        return true;
    }
};

$('button').click(function () {
    doc.fromHTML($('#content').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});
</script>
</head>

<body>
    <button>Click</button>
    <div class="container"> 
        Hello! 
    </div>
</body> 
</html> 

jSFiddle

http://jsfiddle.net/5ud8jkvf/

错误:

enter image description here

  

备注:

     
      
  1. 当小提琴正常运行时,此示例也必须正常运行。
  2.   
  3. jQuery文件中没有jQuery文件的附件,所以我不认为在这个例子中需要或缺少jQuery。
  4.   
  5. 即使添加了jQuery文件 - 错误消失了 - 但是pdf没有下载。
  6.   

3 个答案:

答案 0 :(得分:4)

控制台并不是谎言。小提琴依赖于jQuery。

jQuery require

您的标记需要jQuery。将jQuery添加到您的代码中......

<html>
 <head> 
  <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js"></script>

答案 1 :(得分:2)

原因是你必须添加jQuery,如:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>

答案 2 :(得分:1)

试试这个

<!DOCTYPE html>
<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js"></script>
<script>
var doc = new jsPDF();
var specialElementHandlers = {
    'body': function (element, renderer) {
        return true;
    }
};
$(document).ready(function(){
$('button').click(function () {
    doc.fromHTML($('#content').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});
});
</script>
</head>

<body>
    <button>Click</button>
    <div class="container"> 
        Hello! 
    </div>
</body> 
</html>