首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jive主题中的JSZip

Jive主题中的JSZip
EN

Stack Overflow用户
提问于 2015-12-11 08:16:33
回答 1查看 210关注 0票数 0

有没有人在Jive主题中成功地实现了JSZip?实例化JSZip对象时遇到问题。这里是设置:我有一个Jive主题,在脚本文件夹中有一些自定义的JS文件。JS文件通过脚本标记包含在javascript.soy模板中,如下所示:

/*javascript.soy*/ <script src="{themeUrl('/scripts/carousel.js')}"></script> <script src="{themeUrl('/scripts/jszip.min.js')}"></script> <script src="{themeUrl('/scripts/our-theme.js')}"></script>

our-teme.js尝试实例化一个新的JSZip实例,如下所示:

var zip = new JSZip();

浏览器抛出一个错误(在firebug或Chrome开发者控制台中可见) "ReferenceError: JSZip is not defined“。这很奇怪,因为我可以通过Firebug查看脚本文件,或者通过单击“查看页面源代码”,我可以验证具有JSZip定义的jszip.min.js的正确脚本标记是否已经生成,并且可以访问。

我能够调用其他外部JS文件中的函数,所以我能想到的唯一一件事就是我错误地实例化了这个对象。根据JSZip文档:

对于浏览器,有两个有趣的文件: dist/jszip.js和dist/jszip.min.js (只包含一个)。如果您使用AMD加载器(例如RequireJS),JSZip会自动注册:您只需将js文件放在正确的位置,或者配置加载器(有关RequireJS,请参阅此处)。如果没有任何加载器,JSZip将在全局范围内声明一个名为JSZip的变量。

我没有使用RequireJS。所以JSZip应该注册为一个全局变量,但是我不能访问它,也不能在窗口集合中看到它。

我浏览了整个社区,但没有看到其他人在Jive中使用JSZip,但我认为尝试一下并没有什么坏处:)

EN

回答 1

Stack Overflow用户

发布于 2015-12-12 17:03:00

JSZip使用browserify生成带有UMD定义的dist/文件。如果UMD代码检测到AMD环境(存在带有amd attributedefine function )或nodejs环境(存在module objectexports object ),它就不会公开全局JSZip变量。

在浏览器中,您应该检查自己是否处于这种情况(这些检查来自生成的jszip.js文件):

代码语言:javascript
复制
console.log("looks like AMD", "function" == typeof define && define.amd);
console.log("looks like nodejs", "object" == typeof exports && "undefined" != typeof module);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34214148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档