Blockadblock脚本在Blogger站点无法运行无控制台报错如何解决?
问题根因分析
- Blogger模板自动转义问题
简约Blogger模板默认会对自定义嵌入的脚本中的特殊字符(<、>、&、</script>闭合符等)做HTML实体转义,直接粘贴的blockadblock脚本会被转义为普通文本,浏览器无法识别为可执行JS,因此不会有任何运行日志或报错。 - 脚本加载时机错误
如果blockadblock脚本引入顺序早于jQuery、或者在DOM未完成渲染时就执行,脚本依赖的页面元素不存在时会静默终止执行流程,不会抛出错误。部分简约模板自带非关键脚本延迟加载优化,未命中触发条件时脚本也不会执行。 - Blogger官方规则屏蔽
Blogger自带广告拦截兼容逻辑,会对第三方反广告拦截脚本的特征码做静默屏蔽,不会触发报错,仅阻止脚本运行,是这类脚本在Blogger平台的常见兼容性问题。 - 脚本触发条件未满足
blockadblock默认逻辑需要页面存在符合规则的广告位容器才会启动检测流程,如果测试页面未部署任何广告单元,脚本会直接跳过执行,没有任何输出。
对应解决方法
- 嵌入脚本时选择模板
<!--<head>-->标签前的自定义HTML位置,提前将脚本内所有</script>替换为<\/script>,避免模板解析时提前闭合脚本标签。 - 用DOM加载完成监听包裹整个脚本代码,示例如下:
document.addEventListener('DOMContentLoaded', function() { // 此处粘贴blockadblock的完整代码 })
- 对blockadblock的原版代码做简单混淆,修改特征字符串,避免被Blogger的默认屏蔽规则命中。
- 测试时确保页面已部署正常可加载的广告单元,满足脚本的检测触发条件。

内容的提问来源于stack exchange,提问作者Deran Toli
相关产品推荐
相关产品推荐

