原文:http://liminhappygirl.iteye.com/blog/1841360

javaScript放在<head>和<body>的区别:

在HTML body部分中的JavaScript会在页面加载的时候被执行。 
在HTML head部分中的JavaScript会在被调用的时候才执行。

head 部分中的脚本: 需调用才执行的脚本或事件触发执行的脚本放在HTML的head部分中。当你把脚本放在head部分中时,可以保证脚本在任何调用之前被加载。 
body 部分中的脚本: 当页面被加载时执行的脚本放在HTML的body部分。放在body部分的脚本通常被用来生成页面的内容。

由于在页面中总是难免javascript脚本语言,在代码中看到body里可以放<script type=”text/javascript”>脚本,而head里也可用<scripttype=”text/javascript”>脚本,想要用好他们,就得了解他们的区别,经过自己的总结发现他们的区别如下: 
一、在head主体里写,如果有方法体,那么就是在客户点击的时候触发,如果没写方法体,比如引入的js文件,那么在加载页面前就预加载了。 
二、写在body主体里,是为了实现某些部分动态地创建文档。 这里比如制作鼠标跟随事件,肯定只有当页面加载后再进行对鼠标坐标的计算。或者是filter滤镜与javascript的联合使用产生的图片淡入淡出效果等。这个是在页面加载的时候加载。 
二、会与body和head标签顺序有关。比如下面代码: 
<html> 
<body> 
<script type="text/javascript"> 
alert("in body"); 
</script> 
</body> 
<head> 
<script type="text/javascript"> 
alert("in head"); 
</script> 
</head> 
</html>

结果是先弹出body,再弹出head. 
如果改下代码结果就截然相反了,例 
<html> 
<head> 
<script type="text/javascript"> 
alert("in head"); 
</script> 
</head> 
<body> 
<script type="text/javascript"> 
alert("in body"); 
</script> 
</body> 
</html> 
执行时得考虑javascript执行顺序

说明:

1、页面加载的时候是从上往下执行的,即先执行<head>再执行<body>。

2、一般这样写:<script type="text/javascript">;如果这样写:<script language="javascript">是不标准的,IE能认,但是别的就不知道了。

3、<script type="text/javascript">一般情况下都放在<head></head>里面,便于管理。 
这样也能保证在显示页面之前,所有的javascript代码已经经过解析了。 
放在head里<script>始终是被执行的。 
一般来说,脚本最好放在<head>标签中,但是有时候脚本初始化要用到<body>当中的节点,由于当<head>加载时<body>是未被加载的,所以引致脚本运行出错,以下为错误代码: 
<html> 
<head> 
  <script type="text/javascript"> 
     alert("body's id = "+document.body.id); 
</script> 
</head> 
<body id="test"> 
</body> 
</html>

错误:alert消息框未被弹出 
方法1:在<script>标签处要加一个defer参数,使<script>中的代码延时执行,在页面加载完成后才被执行 
     <html> 
     <head> 
   <script defer type="text/javascript"> 
      alert("body's id = "+document.body.id); 
   </script> 
     </head> 
     <body id="test"> 
     </body> 
     </html> 
方法2:而另一种做法就是将<script>放到<body>后面 
     <html> 
     <head> 
     </head> 
     <body id="test"> 
     </body> 
     <script type="text/javascript"> 
alert("body's id = "+document.body.id); 
     </script> 
     </html>

这样其实是同样道理,就是在加载完<body>后再加载<script>的内容 
方法3:当然也可以用window.onload来延时执行,这里暂时不作介绍

[转]JavaScript放在<head>和<body>的区别的更多相关文章

  1. javaScript放在head和body的区别

    JavaScript写在哪里? 内部:Html网页的<body></body>中: 内部:Html网页的<head></head>中: 外部:外部js文 ...

  2. javascript 代码放在head和body的区别

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt239 1,在head中时,所代表的functions只加载而不执行,执行是在 ...

  3. JavaScript问题01 js代码放在header和body的区别

    1 body和header中JavaScript执行的时机 1.1 header中 放在header中的javascript代码会进行预加载(即:在页面加载之前就会进行),所以需调用才执行的脚本或事件 ...

  4. JavaScript中:表达式和语句的区别

    JavaScript中:表达式和语句的区别 Javascript语言精粹:表达式是由运算符构成,并运算产生结果的语法结构.程序是由语句构成,语句则是由“:(分号)”分隔的句子或命令.如果在表达式后面加 ...

  5. 浅谈Java和JavaScript中变量和数据类型的区别

    对于一门编程语言的学习,如果第一步是安装环境,那么第二步一定是学习这门语言的基本规则,变量和数据类型则首当其冲 JavaScipt作为一个蹭Java热度而命名的语言,在很多方面和Java也有一定的相似 ...

  6. 谈谈javascript放在哪里更合适

    关于javascript放在哪里更合适 脚本位置:  例如以下代码: <html> <head> <title>Script Example</title&g ...

  7. JavaScript返回上一页代码区别

    JavaScript返回上一页代码区别: window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话就是:win ...

  8. JavaScript代码放在head和body的区别(QRCode生成)

    1.在head中时,所代表的functions只加载而不执行,执行是在某一事件触发后才开始. 2.在body中时,直接加载并执行 典型的区别: 如果有不在函数中的执行语句,比如变量初始化,如果在hea ...

  9. javascript的window.ActiveXObject对象,区别浏览器的方法

    (window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...

随机推荐

  1. hadoop压缩框架

    一般来说,计算机处理的数据都存在一些冗余度,同时数据中间,尤其是相邻数据间存在着相关性,所以可以通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小,这个过程一般叫压缩.和压缩对 ...

  2. 【SSH三大框架】Hibernate基础第十一篇:对继承映射的操作

    在java中.类之间能够有继承关系.可是在数据库中是没有继承关系的.只是Hibernate是为了把面向对象的关系反映到数据库中.Hibernate为我们提供了3种方案: 第一.一个继承体系放在一张表中 ...

  3. Android -- Android JUint 与 Sqlite

    创建一个数据库                                                                           public PersonSQLit ...

  4. 我追一个处女座的女孩快两个月了,我之前聊得很好,她说过有空call我去看电影,过了一个月她就不理我了,我喜欢她, 我是程序员,百度发不了那么多字。

    她刚刚进公司的时候,公司组织去打球,我叫她一起去她也去了,我和她聊了很多,聊得很自然,很开心,如我是哪个学习毕业的 我出来工作多久了等,她也聊了 她自己好多,她现在在读大学,只有周日上一天课那种. 我 ...

  5. 解决Asp输出乱码问题

    在一个Asp页面中页面正常的中文字符都没有问题,但如果用Asp程序输出的话就显示为乱码 终于在百度经验上找到解决方案: 1.将文件编码更改为Utf-8 2.在页头添加"<%@LANGU ...

  6. RS中的关系引用不明确以及行列自动添加了追溯

    问题1:由于在FM模型的物理层是自己新建了查询主题,查询主题采用对已经存在的表进行sql处理然后重命名, 使用的是sql类型的数据源,sql类型设置的查询类型是默认的cognos类型,而语法是本地的结 ...

  7. 【Project Euler 8】Largest product in a series

    题目要求是: The four adjacent digits in the 1000-digit number that have the greatest product are 9 × 9 × ...

  8. (LeetCode 49)Anagrams

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  9. C++ 声明与引用

    任何一个技术或者知识点,都是为了解决某个问题.也就是都有他的使用场景,或者说为什么搞出这种技术. 1.解决的问题:现实生活中的例子,要使用一个工具,必要把工具放在这里,或者说我有这个工具.工具只能放在 ...

  10. 2014年七月最佳jQuery插件荟萃

    本月的jQuery插件荟萃我们将介绍几款非常不错的jQuery插件,涵盖了表单,幻灯,页面设计等等方面,相信大家肯定会喜欢! Select or Die 一款帮助开发者美化并且强化选择框的jQuery ...