问题
Google Chrome started implementing Blocking the load of cross-origin, parser-blocking scripts inserted via document.write in the main frame on slow networks, which causes the following error:
A Parser-blocking, cross-origin script, http://example.org/script.js, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity.
However, my web page requires loading a third party script synchronously, using document.write('<script src="..."></script>')
. How to circumvent that blockade?
More about that change:
- Design document
- Longer document
- Web Incubator CG issue
- Chrome Issue
回答1:
According to Google Developers article, you can:
- Use asynchronous script loading, using
<script src="..." async>
orelement.appendChild()
, - Submit the script provider to Google for whitelisting.
回答2:
@niutech I was having the similar issue which is caused by Rocket Loader Module by Cloudflare. Just disable it for the website and it will sort out all your related issues.
回答3:
Don't use document.write, here is workaround:
var script = document.createElement('script');
script.src = "....";
document.head.appendChild(script);
来源:https://stackoverflow.com/questions/39610829/a-parser-blocking-cross-origin-script-is-invoked-via-document-write-how-to-ci