【发布时间】:2012-09-27 02:45:58
【问题描述】:
安装我的应用后,我会创建一个脚本标签(通过 shopify API)。我只对在产品视图页面上运行此脚本感兴趣。检查脚本是否由产品视图页面运行的可靠方法是什么?我是否应该要求商家手动将某些内容放入他们的液体文件中?
【问题讨论】:
标签: javascript shopify
安装我的应用后,我会创建一个脚本标签(通过 shopify API)。我只对在产品视图页面上运行此脚本感兴趣。检查脚本是否由产品视图页面运行的可靠方法是什么?我是否应该要求商家手动将某些内容放入他们的液体文件中?
【问题讨论】:
标签: javascript shopify
这应该可以在 你的 JavaScript 中工作:
// If we are on a product page
if (window.location.pathname.indexOf('/products/') !== -1) {
// What's the product handle?
var productHandle = pathname.match(/\/products\/([a-z0-9\-]+)/)[1];
}
【讨论】:
您可以传递一个额外的函数参数来指定函数的调用位置。我在几个项目中使用了这种编程并取得了巨大的成功。例如:
function foo(data, moarData, caller) {
if(caller != 'productPage') { return false; }
...
}
您可以在产品视图页面的函数调用中指定调用者变量:
var page = 'productPage';
foo('sharks', 'games', this.page);
【讨论】:
Shopify 中的产品页面上始终有一个将产品添加到购物车的表单,因此您可以执行以下操作(假设 jQuery 可用):
jQuery("form[action='/cart/add']").each(function() {
console.log("I'm in ur product page");
});
【讨论】:
编写一些通用的 Javascript 来查询浏览器中的当前 URL。您可以轻松判断您是在页面、产品还是集合上。尝试一个简单的正则表达式来做到这一点。由于 Shopify 是托管的,因此商店很难弄乱 URL 结构。
【讨论】: