我有一个Shopify应用程序,它在安装后通过API添加了一个ScriptTag。脚本依赖于jQuery和Shopify jQuery AJAX库。如果可能的话,我想避免强迫商家编辑多个主题文件。
据我所知:
scripts.liquid资产中是行不通的,因为API添加了*.liquid资产只有访问设置对象的权限。。我很不情愿地倾向于单独提供一个片段,并指示商家在</head>之前粘贴它。
是否有我缺少的用于使用ScriptTag的Shopify预期的模式?
发布于 2012-08-24 11:56:05
你不能真的依赖于主题中的任何东西,商店老板可以定制他们想要的任何东西,而且你对它几乎没有控制权。你的选择是:
我建议自己来做#3,但是我可能会选择一个轻量级的库,它可以完成您所需要的最小值(也就是说,如果您真的不需要遍历jQuerys选择器引擎,那么这是一个很大的代码块,您可以不使用它)。如果你到处找的话会有很多这样的人。
发布于 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的应用程序都没有任何好处。
https://stackoverflow.com/questions/12102947
复制相似问题