出现Cannot redefine property: googletag运行时错误,求解决方案
解决"Cannot redefine property: googletag"错误的方案
这个错误的核心原因是代码重复尝试通过Object.defineProperty定义window.googletag属性,而该属性已被定义且默认处于不可重新配置状态。以下是具体解决方法:
排查重复加载逻辑
检查页面代码,确保Google Ad Manager的googletag.js脚本只被引入一次,同时确认自定义代码中没有重复执行初始化googletag的逻辑。提前判断属性存在性
在初始化googletag前先检查该属性是否已存在,避免重复定义:if (!window.googletag) { // 执行googletag初始化逻辑,比如加载脚本或初始化配置 window.googletag = window.googletag || {}; }配置可重新定义的属性(自定义定义场景)
如果是你自己的代码使用Object.defineProperty定义googletag,第一次定义时需设置configurable: true,允许后续修改:Object.defineProperty(window, 'googletag', { value: {}, writable: true, enumerable: true, configurable: true // 允许重新配置该属性 });动态条件加载脚本
若通过动态方式加载googletag.js,添加判断逻辑确保仅加载一次:function loadGoogletag() { if (window.googletag) return; const script = document.createElement('script'); script.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; script.async = true; document.head.appendChild(script); } loadGoogletag();
内容的提问来源于stack exchange,提问作者Nafees Kausar
相关产品推荐
相关产品推荐

