我有一个Shopify应用程序,在安装后立即通过API添加ScriptTag
。该脚本依赖于jQuery和Shopify jQuery AJAX库。如果可能的话,我想避免强迫商家编辑多个主题文件。
据我所知:
scripts.liquid
资产不起作用。我不情愿地倾向于单独提供一个片段,并指示商家在</head>
之前粘贴它。
是否存在使用ScriptTag
我想要的Shopify预期模式?
答案 0 :(得分:8)
您无法真正依赖主题中可用的任何内容,商店所有者可以自定义他们想要的任何内容,而您几乎无法控制它。您的选择是:
我建议自己做#3,但我可能会选择一个更轻量级的库,它可以满足您的需要(例如,如果你真的不需要遍历jQuerys选择器引擎是一个很大的代码,你可以做到没有)。如果你四处搜寻,那里有很多。
答案 1 :(得分:4)
我已经开始创建这个示例文件作为您与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,做我需要做的任何事情。我讨厌说它但是使用你自己的代码太简单了,它确实是这样。你根本不需要帮助文件,这是不必要的膨胀,并且通过使用它你会遇到可能的冲突情况,因为主题也可能正在使用它。如果主题使用它来使用Ajax来购买购物车或加载产品,它将重新定义辅助文件中定义的一些回调函数。您只需再次加载文件即可中断所有这些回调。人们会在购物车中添加商品,突然会在他们的页面上显示警报,或者不是通过Ajax在页面上加载的产品突然主题会显示警告“我们现在拥有所有信息您询问了产品X“没有将产品添加到页面中。使用jquery.api.js的任何应用程序都没有好处。