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:
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.
@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.
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