0

为什么这两行代码之间的差异会导致 jquery 在 iOS(Safari 和 Chrome)中无限循环的错误?该循环未在任何其他浏览器中发生。

if ($('[name="loadingTime"]') != undefined) {...

对比

if ($('.loadingTime') != undefined) {...

当我们以类而不是名称属性为目标时,循环错误就消失了。有什么想法或解释吗?

4

1 回答 1

1

经过进一步调查,在代码的另一部分中发现了该错误。这是发生的事情:

  loadInterval: function() {
  var settimer = $('[name="loadingTime]').val();
  var interval = setInterval(function() {
    if (settimer == 0) {
      window.clearInterval(interval);
      $('[id^="interstitial-container"]').remove();
    };
    settimer--;
    if (settimer >= 0) {
      $('.ncount').text(settimer);
    }
  }, 1000);
}

var settimer = $('[name="loadingTime]').val();

在loadingTime之后我们错过了一个结束报价!js 返回为 undefined 并且 iOS 没有优雅地处理它,所以var settimer没有设置为零,所以每当调用该函数loadInterval时,它都是未定义的,我们检查是否需要基于 undefined 加载。在我们的例子中,它不是并且继续一遍又一遍地加载,总是得到一个未定义的响应,但没有错误。我认为...

于 2016-05-27T16:45:46.200 回答