Chrome控制台出现parser-blocking跨域脚本警告,求修复方案
解决Chrome中parser-blocking跨域脚本警告问题
问题原因
Chrome抛出警告的核心原因:你通过document.write加载跨域(不同eTLD+1)的脚本dcts.js,这种方式会阻塞页面解析,且在弱网环境下可能被浏览器阻止加载,进而影响功能正常运行。
解决方案
将原代码中document.write动态插入脚本的逻辑,替换为异步创建script标签的方式(与Google Analytics的加载逻辑一致),既不会阻塞页面解析,也能彻底消除该警告。
修改后的完整代码如下:
<script type="text/javascript"> //<![CDATA[ var DaumConversionDctSv="type=M,orderID=,amount="; var DaumConversionAccountID="Ki7kLa_84SUcid7XE.GR4A00"; if(typeof DaumConversionScriptLoaded=="undefined"&&location.protocol!="file:"){ var DaumConversionScriptLoaded=true; // 替换document.write为异步创建script标签 var script = document.createElement('script'); script.type = 'text/javascript'; script.src = (location.protocol=="https:"?"https":"http") + "://t1.daumcdn.net/cssjs/common/cts/vr200/dcts.js"; document.body.appendChild(script); } //]]> </script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-141511041-1', 'auto'); ga('send', 'pageview'); </script>
关键说明
- 异步创建script标签的方式遵循现代浏览器性能最佳实践,不会阻塞HTML解析流程
- 完全规避了
document.write带来的parser-blocking风险,弱网环境下也不会被浏览器拦截加载 - 保留了原有的逻辑判断(仅加载一次、非file协议下执行),不会影响原有业务功能
内容的提问来源于stack exchange,提问作者Jiwon Seo
相关产品推荐
相关产品推荐

