那个达人能帮我详细的解释一下。 这个范例的 defer 。<html> 
<head> 
<title>defer 示例</title> 
<script> 
<!-- 
function a(){ 
var dong,cc; 
cc = '<input type=button onclick=\'w();\' value=\'单击执行,带defer脚本\'>'; 
dong = "<script defer=\'defer\'>"; 
dong = dong + "function w(){alert('你现在看得到的是被动态创建的。');}"; 
dong = dong + "</script" + ">"; 
b.innerHTML = cc + dong; 

//--> 
</script> 
</head> 
<body> 
<input type="button" onClick="a();" value="动态生成一个JS脚本" /> 
<div id="b"></div> 
</body> 
</html> 但是 我明白这个下面例子里的 defer。 上面的那个例子我 就晕了。困扰我啊。<script defer> 
myButton.click(); 
</script> 
<button id="myButton" onclick="alert('ok')">test</button>希望, 各位详细点解释。

解决方案 »

  1.   

    defer就是都加载完再执行标有defer属性的<script>标签里的内容,
    防止还没加载报对象不存在
      

  2.   

    那这句怎么解释啊。  b.innerHTML = cc + dong; 这是动态输出的。 只有点击的时候才执行的。不点击那个函数永远不执行。defer 的原意我理解,但是,就那段代码,我么看明白。但是要去掉 defer 就报错。加上 defer 就好用。
    我就想知道那段代码里的 defer 怎么解释。
      

  3.   

    MSDN :
    http://msdn.microsoft.com/en-us/library/ms533897.aspxWhen using innerHTML to insert script, you must include the DEFER attribute in the script element.
      

  4.   


    我就想知道这是为什么。你们都理解错了,我不是问 innerHTML 杂用。 我就想知道为什么在插入脚本时为什么要用 defer 。我知道 innerHTML 咋用。你们就告诉我,我再重复一遍,为什么在动态插入脚本时,必须加 defer 属性。你们都没说道重点。你们是怎么理解的。 怎么给分啊。
      

  5.   

    如果你在innerHTML中加入<script>,IE会将其忽略最后造成你的函数w没有定义,加入defer可以绕过这点
      

  6.   

    html遇到一个脚本,要按照常规对文档的解析并且等待脚本执行,defer属性可以让文档的延迟执行。