[英]Image for <option> works in firefox but not works in other browsers
[英]Script works in other browsers but not in Firefox
我正在使用脚本将产品添加到我的在线商店的购物车中。 在其他浏览器中,该功能正常工作但在Firefox中,产品从未添加到购物车中,我不知道为什么。
我已经阅读过Firefox没有提供全局事件对象的内容,但我不知道如何解决这个/我实现该对象的位置。
https://mylily.eu/pages/1-box-gratis-im-slipeinlagen-abo
这是我想通过点击“In den Warenkorb”将产品添加到购物车的产品页面之一。
下面是一些代码片段,第一个是EventListener,onClick使用变量值执行实际的addItemToCart函数。 变量amount_slipeinlagen是一个可更改的全局变量,该值是在addItemtoCart函数上传递的:
<script>
document.getElementById("add-to-cart-button").addEventListener("click", function(){
addItemToCart(variantid_slipeinlagen, amount_slipeinlagen, frequency_slipeinlagen , "Weeks", "199014")
})
</script>
<script>
function addItemToCart (variant_id, quantity, shipping_interval_frequency, shipping_interval_unit_type, subscription_id) {
data = {
"quantity": quantity,
"id": variant_id,
"properties[shipping_interval_frequency]": shipping_interval_frequency,
"properties[shipping_interval_unit_type]": shipping_interval_unit_type,
"properties[subscription_id]": subscription_id
}
jQuery.ajax({
type: 'POST',
url: '/cart/add.js',
data: data,
dataType: 'json',
success: function() {
window.location.href = '/cart';
}
});
window.location = '/checkout';
}
</script>
在Firefox上,产品根本没有添加到购物车中。
答案只能作为问题的指南,因为它很广泛。
浏览器有Javascript环境。 他们每个人都运行特定版本的Javascript。 这些是供应商(谷歌浏览器,Firefox,Safari,IE)。 事实上,他们的JS引擎采用了独立的Ecmascript标准(Javascript的标准体)。
它还取决于您为每个浏览器运行的版本。
因此,您很可能使用Firefox当前版本不支持的某些语法。
您可以做的是检查控制台是否有错误,然后慢慢缩小生成错误的文件或代码。 一旦确定了确切的代码。 尝试在不同的浏览器中测试运行代码。
像Babel这样的工具使您可以使用所有最新功能而不会出汗,并将其转换为所有浏览器的统一代码。 你必须配置一次。
现在,手动替换麻烦的代码就足够了。 可能你正在使用这种浏览器不支持的最新语法。 借助pollyfill或将其替换为您的应用需要运行的所有目标浏览器支持的Javascript代码版本。
希望能帮助到你!
当你执行location.href = "/checkout"
,你将离开当前页面,同时杀死页面及其所有脚本。
jQuery.ajax确实启动的异步XMLHttpRequest也可能在此过程中被浏览器杀死。
简单地删除此行将使您的代码在Firefox中工作(通过在控制台中粘贴此代码进行测试):
function addItemToCart(variant_id, quantity, shipping_interval_frequency, shipping_interval_unit_type, subscription_id) {
data = {
"quantity": quantity,
"id": variant_id,
"properties[shipping_interval_frequency]": shipping_interval_frequency,
"properties[shipping_interval_unit_type]": shipping_interval_unit_type,
"properties[subscription_id]": subscription_id
}
jQuery.ajax({
type: 'POST',
url: '/cart/add.js',
data: data,
dataType: 'json',
success: function() {
// only when we succeed do we redirect
window.location.href = '/cart';
}
});
// do not redirect now
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.