jsPDF 不能在本地主机上工作

jsPDF not working in localhost

<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 中工作正常但在本地主机中不工作我已经提到了我所有的代码所以很容易理解我在做什么

问题是您 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 是可行的,因为标记是由应用程序自动呈现的。