簡體   English   中英

腳本適用於其他瀏覽器但不適用於Firefox

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM