簡體   English   中英

Onclick JS函數調用,僅在Safari控制台中返回“找不到變量”

[英]Onclick JS function call, returns “Can't find variable” only in Safari Console

因此,我編寫了一個非常簡單的JS函數,其工作原理如下所示。

有一個具有以下代碼的按鈕:

<button type="submit" class="large button" onclick="addCart(76,95,73,96);">
    <i class="icon-shopping-cart"></i> Add to Cart
</button>

現在,當單擊該按鈕時,將在下面的頁面中添加一個非常簡單的函數,如下所示:

<script type="text/javascript">
    function addCart(pid, pattr, pval, pscent = 0) {
    ...
    }
</script>

這在Chrome,Firefox,Chrome瀏覽器移動版,Safari瀏覽器中完美運行。

但這似乎不適用於Mac上的Safari。 相反,我得到以下錯誤:

ReferenceError:找不到變量:addCart

我不知道為什么。 我很難添加一個偵聽器,因為有7個按鈕和各種各樣的變量正在發送,所以我寧願像現在正在發送的那樣發送。

由於輸入類型為“提交”,因此您似乎正在提交表單。 您是否嘗試過將輸入類型設置為“按鈕”進行測試?

我終於找到了問題。

該函數正在Safari中創建錯誤,因此從未定義。 我將功能更改為以下內容:

function addCart(pid, pattr, pval, pscent) {
    pscent = (typeof pscent !== 'undefined') ?  pscent : 0;
...
}

注意,最大的區別是我不再使用Function來聲明'pscent'的默認值,而是使用舊的方法。 不知道這是由舊版本的Safari引起還是由什么引起的。

如果由於類似的錯誤而在這里,請在函數中查找一些潛在的JS錯誤,這將阻止函數的聲明。

如果您使用的是jQuery,請嘗試使用文檔准備功能

$(document).ready(function() { 
// code here
});

或在此處使用純JavaScript自執行函數

(function() {
   // your page initialization code here
   // the DOM will be available here

})();

可能的原因是單擊時您的功能不可用

這是一個示例(使用jquery) https://jsfiddle.net/baphmoLt/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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