为什么这两行代码之间的差异会导致 jquery 在 iOS(Safari 和 Chrome)中无限循环的错误?该循环未在任何其他浏览器中发生。
if ($('[name="loadingTime"]') != undefined) {...
对比
if ($('.loadingTime') != undefined) {...
当我们以类而不是名称属性为目标时,循环错误就消失了。有什么想法或解释吗?
为什么这两行代码之间的差异会导致 jquery 在 iOS(Safari 和 Chrome)中无限循环的错误?该循环未在任何其他浏览器中发生。
if ($('[name="loadingTime"]') != undefined) {...
对比
if ($('.loadingTime') != undefined) {...
当我们以类而不是名称属性为目标时,循环错误就消失了。有什么想法或解释吗?
经过进一步调查,在代码的另一部分中发现了该错误。这是发生的事情:
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 加载。在我们的例子中,它不是并且继续一遍又一遍地加载,总是得到一个未定义的响应,但没有错误。我认为...