|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
html代码主体如下:
- <!DOCTYPE html>
- <html>
- <head>
- <title>定义文档内嵌代码</title>
- <meta charset="utf-8">
- <meta name="viewport" content="width=width, inital-scale=1.0">
- <meta name="keywords" content="小甲鱼,Web开发,HTML5,css3,web编程教学">
- <meta name="description" content="《零基础入门学习web开发》案例演示">
- <meta name="author" content="小甲鱼">
- <script type="text/javascript" src="java.js" defer></script>
- </head>
-
- <body>
-
- <p>I love fishc.com!</p>
- </body>
- </html>
复制代码
js文件如下:
按理来说先解析后执行结果会是先打印:“I love fishc.com!”,再打印“我最帅!”
但是执行结果只打印了:“I love fishc.com!”
本帖最后由 不二如是 于 2018-5-7 10:49 编辑
正常来讲,输出两个…
为啥只有一个呢?
请看下文分解
正常测试:
- <!DOCTYPE html>
- <html>
- <head>
- <title>定义文档内嵌代码</title>
- <meta charset="utf-8">
- <meta name="viewport" content="width=width, inital-scale=1.0">
- <meta name="keywords" content="小甲鱼,Web开发,HTML5,css3,web编程教学">
- <meta name="description" content="《零基础入门学习web开发》案例演示">
- <meta name="author" content="小甲鱼">
- <script type="text/javascript" src="java.js"></script>
- </head>
- <body>
- <p>I love fishc.com!</p>
- </body>
- </html>
复制代码
java.js:
正常浏览器加载顺序,script->输出“我最帅”->渲染DOM树完成->“I love fishc.com!”
增加der延迟(如你所示):
"我最帅"去哪里了呢?
小甲鱼演示中明明修改DOM成功了啊,问题出在:
因为你想利用document.write来在HTML中插入标签,就如同让浏览器在解析HTML的时候动态得添加标签。
一般来讲没问题,但是script有了degfer延迟属性后,就会很尴尬:
defer以后,浏览器早已完成了HTML的解析,文档流关闭,document.write不具备开启文档流的设定,所以defer后,没有DOM树可以用,所以没法插入,所以看不到
一般来讲,document.write,日常开发在外部文件中 很少使用...
|
|