javascript 标记的 defer 属性 【javascript】

idifferent1 2008-07-19 09:43:06
那个达人能帮我详细的解释一下。 这个范例的 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>

希望, 各位详细点解释。
...全文
424 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoting924 2008-07-20
  • 打赏
  • 举报
回复
html遇到一个脚本,要按照常规对文档的解析并且等待脚本执行,defer属性可以让文档的延迟执行。
MyTools_Studio 2008-07-19
  • 打赏
  • 举报
回复
MSDN :
http://msdn.microsoft.com/en-us/library/ms533897.aspx

When using innerHTML to insert script, you must include the DEFER attribute in the script element.
idifferent1 2008-07-19
  • 打赏
  • 举报
回复
那这句怎么解释啊。 b.innerHTML = cc + dong; 这是动态输出的。 只有点击的时候才执行的。不点击那个函数永远不执行。

defer 的原意我理解,但是,就那段代码,我么看明白。但是要去掉 defer 就报错。加上 defer 就好用。


我就想知道那段代码里的 defer 怎么解释。
hbhbhbhbhb1021 2008-07-19
  • 打赏
  • 举报
回复
defer就是都加载完再执行标有defer属性的<script>标签里的内容,
防止还没加载报对象不存在
zhouhuicun 2008-07-19
  • 打赏
  • 举报
回复
楼上正解
MyTools_Studio 2008-07-19
  • 打赏
  • 举报
回复
如果你在innerHTML中加入<script>,IE会将其忽略

最后造成你的函数w没有定义,加入defer可以绕过这点
idifferent1 2008-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yonghengdexingxing 的回复:]
MSDN :
http://msdn.microsoft.com/en-us/library/ms533897.aspx

When using innerHTML to insert script, you must include the DEFER attribute in the script element.
[/Quote]

我就想知道这是为什么。你们都理解错了,我不是问 innerHTML 杂用。 我就想知道为什么在插入脚本时为什么要用 defer 。我知道 innerHTML 咋用。

你们就告诉我,我再重复一遍,为什么在动态插入脚本时,必须加 defer 属性。

你们都没说道重点。你们是怎么理解的。 怎么给分啊。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧