Javascript document.write阻止后续代码执行

时间:2011-06-28 20:55:29

标签: javascript

我理解document.write会阻止执行以下javascript。

例如,document.write将阻止执行以下javascript,直到document.write块完全执行。

<!doctype html>
<script>
document.write('<script>alert(1)<'+'/script>');
alert('2');  
</script>

http://jsbin.com/alefob

您可以更进一步,并且需要在执行以下脚本之前远程加载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';

1 个答案:

答案 0 :(得分:1)

Synchronous XHR会在收到回复或请求错误之前停止许多浏览器中的世界。

显然,document.writeln以与document.write相同的方式阻止世界。

相关问题