我理解document.write
会阻止执行以下javascript。
例如,document.write
将阻止执行以下javascript,直到document.write
块完全执行。
<!doctype html>
<script>
document.write('<script>alert(1)<'+'/script>');
alert('2');
</script>
您可以更进一步,并且需要在执行以下脚本之前远程加载javascript。
<!doctype html>
<script>
document.write('<script src="remote_script.js"><'+'/script>');
alert(remote_script_variable);
</script>
显然我可以做回调,但这不是我想要的。
基本上任何其他函数都有这个独特的功能,可以防止脚本加载到完成(我可能想要避免的其他函数)吗?
假设没有其他功能具有此独特功能。页面加载后是否可以使用document.write
而不覆盖页面内容?
我知道您可以使用yennop.js
var script = document.createElement('script');
var currentScript = document.getElementsByTagName('script')[0];
currentScript.parentNode.insertBefore(script,currentScript);
script.src = '//some url';
答案 0 :(得分:1)
Synchronous XHR会在收到回复或请求错误之前停止许多浏览器中的世界。
显然,document.writeln
以与document.write
相同的方式阻止世界。