如何让Docxtemplater.js在浏览器上工作而不需要Node / Browserify / npm等知识?

时间:2016-08-05 00:38:46

标签: javascript node.js npm browserify

我想让Docxtemplater.js在浏览器上运行。

不幸的是,我不知道Node.js,Browserify.js," npm"," bower"这些东西,以及那些出现在那些好东西中的东西和酷的现代JS库。我想了解它们,但将来......现在我只想让这个Docxtemplater.js工作。

在页面底部,他们展示了如何使用npm,但我不想要,所以我去了Quickstart In The Browser。我一定做错了,因为它不起作用。

这就是我所做的:

  • 我创建了一个名为testpage.html的文件,其中包含以下内容:

    <html><body>
    <script src="build/docxtemplater.js"></script>
    <script src="vendor/FileSaver.min.js"></script>
    <script src="vendor/jszip-utils.js"></script>
    <script>
    var loadFile = function(url,callback) {
        JSZipUtils.getBinaryContent(url,callback);
    }
    loadFile("examples/tagExample.docx", function(err, content) {
        if (err) { throw e };
        doc = new Docxtemplater(content);
        doc.setData({
            "first_name": "Hipp",
            "last_name": "Edgar",
            "phone": "0652455478",
            "description": "New Website"
        }); //set the templateVariables
        doc.render(); //apply them (replace all occurences of {first_name} by Hipp, ...)
        out=doc.getZip().generate({type:"blob"}); //Output the document using Data-URI
        saveAs(out,"output.docx");
    });
    </script>
    </body></html>
    
  • 我创建了一个文件夹build并将文件docxtemplater.js放在那里,从here下载,特别是原始文件docxtemplater.v2.1.3.min.js(当然我将其重命名为docxtemplater.js)。

  • 我创建了一个文件夹vendor并将文件FileSaver.min.jsjszip-utils.js放在那里,这两个文件都来自here

  • 我创建了一个文件夹examples并将文件tagExample.docx放在那里,取自here

这正是我所做的。我没有添加任何其他文件或文件夹,或任何其他内容。

然后,我在Windows 7上使用我的Firefox 47.0.1打开了文件testpage.html。控制台打开后,出现以下错误消息:

ReferenceError: Docxtemplater is not defined - 在这一行:doc = new Docxtemplater(content);

出了什么问题?如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:只需将new Docxtemplater(content)替换为new Docxgen(content)

这种情况只发生在downloading the JS build directly from github,就像我一样。

opened an issue关于它,现在这是properly documented in Readme.md

  

如果你从那里下载JS,你应该使用新的Docxgen()而不是新的Docxtemplater(),因为我不想对docxtemplater-build存储库中的次要版本更改进行重大更改。

似乎&#34; Docxgen&#34;是图书馆的旧名称,现在更名为&#34; Docxtemplater&#34;。