转自:
今天在例行巡检博客的时候发现 console 报错了:
错误内容是:
A Parser-blocking, cross-origin script, .php?id=1257684520, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity.
A Parser-blocking, cross-origin script, .php?web_id=1257684520&t=z, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity.
第一次遇到这种问题,用 Safari 打开后发现并没有报错。考虑到之前更新了 Chrome 遂怀疑是 Chrome 的问题,Google 搜了一下搜到了这篇 在其中第一个答案处找到了 Google 的文档。
浏览了一下,大意就是在页面渲染完成后就不能使用 document.write 方法了,从 Chrome 53 开始就会报以上的错误。文章还给出了一系列的解决方法。
仔细查了博客中的相关代码,发现时只加载了 z_stat.php 这个资源,很明显第二个报错是 z_stat.php 中的代码执行的,本想着将 document.write 换个方法写,现在换成别的写法也不能解决报错,只有先忍着,等 CNZZ 修改他们的代码了。
顺便随手给 CNZZ 发了一封邮件,希望能有回复。
10月9日收到了CNZZ回复的邮件:
您好,针对chrome新版对对第三方js的阻止的问题,目前依赖于JS的所有产品都会受此影响。
目前解决办法是建议您更换我们的异步加载代码,请参考附件。
但需要注意:使用异步加载代码后统计的数据会比普通JS代码数据少,
但目前如果更不换异步加载代码,在新版chrome的阻止下数据是直接统计不到的。
请您知悉,感谢您对U-WEB的支持!
打开附件 统计代码异步加载教程.docx ,按照教程提供的方法将js代码修改成异步加载后即可,需要提醒的是附件中的代码存在中英文符号的问题,所以可以复制下面的代码:
CNZZ 异步加载
JavaScript
1 2 3 4 5 6 7 | var cnzz_s_tag = ateElement('script'); cnzz_pe = 'text/javascript'; cnzz_s_tag.async = true; cnzz_s_tag.charset = 'utf-8'; cnzz_s_tag.src = '.php?id=xxxxxx&async=1'; var root_s = ElementsByTagName('script')[0]; root_s.parentNode.insertBefore(cnzz_s_tag, root_s); |
至此问题解决~
本文发布于:2024-01-31 03:25:48,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664275125024.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |