![](/img/trans.png)
[英]ReferenceError: Can't find variable: when I call a function (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.