Onclick JS函数调用,返回"无法找到变量"仅在Safari控制台中

时间:2017-07-05 17:15:00

标签: javascript safari

所以我编写了一个非常简单的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 for Mobile,Safari for Mobile。

但Mac上的Safari上的似乎无法正常工作。相反,我收到以下错误:

  

ReferenceError:无法找到变量:addCart

我无法弄清楚原因。我添加一个监听器很难,因为有7个按钮和一系列正在发送的变量,我宁愿像我现在这样发送它。

3 个答案:

答案 0 :(得分:0)

由于输入类型为“提交”,因此您似乎正在提交表单。您是否尝试将输入类型设置为“按钮”进行测试?

答案 1 :(得分:0)

我终于找到了这个问题。

该函数在Safari中创建了一个错误,因此从未定义过。我将功能更改为以下内容:

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

请注意,最大的区别是我不再使用函数声明&#39; pscent&#39;的默认值。而是我做旧学校的方法。不确定这是由旧版本的Safari引起的还是什么。

如果你因为类似的错误而在这里,请在函数中查找一些潜在的JS错误,这将阻止声明函数。

答案 2 :(得分:-1)

如果您正在使用jquery尝试使用文档就绪函数

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

或在这里使用普通的javascript自执行功能

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

})();

可能的原因是您的功能在点击时不可用

以下是一个示例(使用jquery)https://jsfiddle.net/baphmoLt/