gpt4 book ai didi

javascript - Onerror 即使没有错误仍然运行

转载 作者:行者123 更新时间:2023-12-01 03:43:10 24 4
gpt4 key购买 nike

好吧,每当加载广告网络提供的图像时出现问题时,我都会尝试运行一些 JavaScript。

广告显示得很好,但我的脚本无论如何都会被调用。我是否以错误的方式处理这个问题?

代码:

<script type="text/javascript">
function catchAdLoadError(i) {
console.log("error happened loading advert " + i);
trackingInfo['adfailedtoload'] = 'testad' + i;

document.getElementById("t-tracking-fragment").innerHTML = vsDoTracking();
}
$(function() {
document.getElementById("advertBanner0").addEventListener("error", catchAdLoadError(0));
document.getElementById("advertBanner1").addEventListener("error", catchAdLoadError(1));
});

</script>

最佳答案

当您设置事件监听器时,将调用并解释您的错误函数。使用匿名函数定义事件监听器:

document.getElementById("advertBanner0").addEventListener("error", function(){ catchAdLoadError(0) } );

而不是:

document.getElementById("advertBanner0").addEventListener("error", catchAdLoadError(0));

第二个事件监听器也是如此。

注释:

函数 addEventListener 需要以下格式的参数:

addEventListener( eventName, callbackFunction )

当您指定某个函数来监听事件时,预期的第二个参数是函数对象,而不是函数调用,因此catchAdLoadError(0) 立即执行。您可以像 catchAdLoadError 一样直接放置函数名称,但由于您在函数调用中需要额外参数(0 或 1),因此必须将每个特定调用放置在将由事件调用的匿名函数中.

关于javascript - Onerror 即使没有错误仍然运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43739326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com