$(文件)。已经没有在iOS上开火了

时间:2017-08-21 19:14:23

标签: javascript jquery ios

我的页面上有以下代码:

<script src="//path.to/jquery.min.js"></script>

<script>
 /* Statements #1 - Defining some variables... */
</script>

<script>
$(document).ready(function () {
 /* Statements #2 - Doing some stuf... */
});
</script>

上述代码在桌面和Android设备上运行良好,但在iOS设备上运行时,声明#2不起作用。我检查了控制台,没有错误。

仅仅是为了测试,我已经通过复制/粘贴在控制台上执行了#2语句,并且它按预期运行 - 这不会自动运行,页面加载完成。

PS:我在iOS设备上遇到错误 - 在iPhone上使用Safari进行测试,并使用iOS Webkit Proy在使用Chrome远程的Windows 10上进行调试

2 个答案:

答案 0 :(得分:0)

我发现了问题:在我的代码的某处,我有一个具有预定值的函数,并且只有Safari抛出错误。所以,我正在使用它:

function myFunction(parameter) {
    /* Coll stuf here... */
}

取而代之的是:

function myFunction(parameter = undefined) {
    /* Broken code... */
}

答案 1 :(得分:0)

我遇到了同样的问题,但我发现这是因为我在脚本包含的末尾添加了“async defer”,这导致该函数在该函数可用之前被调用 - 导致所有后续 javascript 函数失败.不知道为什么这只发生在 Safari 而不是 Chrome/FF,但很有趣。

<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.1/dist/jquery.validate.min.js" async defer></script>

<script>
  $(document).on('ready', function() {
    $("#myForm").validate();
  });
</script>

删除“异步延迟”部分(Google 告诉我添加以提高页面加载速度)解决了该问题。