首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScriptTag依赖管理?

ScriptTag依赖管理?
EN

Stack Overflow用户
提问于 2012-08-24 03:57:28
回答 2查看 2K关注 0票数 8

我有一个Shopify应用程序,它在安装后通过API添加了一个ScriptTag。脚本依赖于jQuery和Shopify jQuery AJAX库。如果可能的话,我想避免强迫商家编辑多个主题文件。

据我所知:

  • 这些依赖并不能保证出现在每个主题上或以正确的顺序出现。
  • 我没有直接的方法从API中引用Shopify、CDN或主题脚本(因为它只用于远程脚本)。
  • 将所有脚本标记合并到scripts.liquid资产中是行不通的,因为API添加了*.liquid资产只有访问设置对象的权限。

我很不情愿地倾向于单独提供一个片段,并指示商家在</head>之前粘贴它。

是否有我缺少的用于使用ScriptTag的Shopify预期的模式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-24 11:56:05

你不能真的依赖于主题中的任何东西,商店老板可以定制他们想要的任何东西,而且你对它几乎没有控制权。你的选择是:

  1. 要求客户将jQuery添加到他们的主题中。
  2. 用纯javascript编写代码,而不依赖于任何其他库。
  3. 将您需要的库嵌入到自己的脚本中。确保将其封装在闭包中,这样如果它们已经拥有了库,它们就不会发生冲突。

我建议自己来做#3,但是我可能会选择一个轻量级的库,它可以完成您所需要的最小值(也就是说,如果您真的不需要遍历jQuerys选择器引擎,那么这是一个很大的代码块,您可以不使用它)。如果你到处找的话会有很多这样的人。

票数 8
EN

Stack Overflow用户

发布于 2013-04-16 22:56:12

我已经创建了这个示例文件,作为您与ScriptTag:http://gist.github.com/carolineschnapp/5397337一起使用的起点--它将向您展示如何加载jQuery,如果jQuery没有定义,或者对您的需求来说太老了,而不会破坏商店的主题。您需要使用jQuery.noConflict。这是很容易做到的,没有共线损害。

我还写了一篇糟糕的文章,这可能是我在文档生涯中写的最糟糕的东西,但它充满了智慧:http://docs.shopify.com/api/tutorials/using-javascript-responsibly --我希望它能说服你坚持使用ScripTag。

至于加载Shopify jQuery AJAX库,我完全不会。我会使用我自己的代码,在jQuery中,做我需要做的任何事情。我不想这么说,但它太简单了,不能使用您自己的代码,它确实如此。您根本不需要帮助文件,这是不必要的膨胀,通过使用它,您会遇到可能的冲突情况,因为主题可能也在使用它。如果一个主题使用它来对购物车进行ajaxify,或者使用Ajax加载产品,那么它将重新定义助手文件中定义的一些回调函数。您只需再次加载文件,就可以破坏所有这些回调。人们会将商品添加到购物车中,突然之间,一个警告就会出现在他们的页面上,或者不再是通过Ajax加载到页面上的产品,而是突然显示一个警告,上面写着“我们现在有了您要求的关于产品X的所有信息”,没有产品被添加到页面中。任何使用jquery.api.js的应用程序都没有任何好处。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12102947

复制
相关文章

相似问题

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