Google AdSense的show_ads_impl_fy2021.js无限for循环问题求助
修复Google AdSense锚定广告引发的show_ads_impl_fy2021.js无限循环问题
问题分析
你遇到的无限循环是因为锚定广告固定在视口底部,导致f.getBoundingClientRect().top始终大于参数b,变量e无法降到b以下,循环条件一直成立,无法终止。
可行修复方案
调整锚定广告设置(最稳妥)
登录AdSense后台,找到锚定广告的配置项:- 关闭「移动设备底部固定」选项,切换为「自动隐藏」模式,或者调高广告的最小高度阈值
- 暂时禁用锚定广告,直到Google修复脚本bug
前端临时干预(需注意政策合规)
由于无法直接修改AdSense官方脚本,可以通过自定义代码限制异常循环的执行次数,避免页面卡死:// 针对AdSense锚定广告引发的无限循环做干预 const originalRAF = window.requestAnimationFrame; let loopCounter = 0; window.requestAnimationFrame = function(callback) { loopCounter++; // 检测到高频回调(疑似无限循环)时,强制降低执行频率 if (loopCounter > 1000) { loopCounter = 0; return setTimeout(callback, 16); } return originalRAF(callback); };注意:此方法属于前端临时hack,需确保符合AdSense的政策条款,避免账号风险
提交官方反馈等待修复
该问题属于AdSense官方脚本的bug,你可以通过AdSense帮助中心提交问题反馈,说明你的页面场景和循环问题细节,等待Google更新show_ads_impl_fy2021.js脚本修复此问题
内容的提问来源于stack exchange,提问作者Anri
相关产品推荐
相关产品推荐

