JS代码放在head和body中的区别分析

 更新时间:2011年12月01日 00:02:08   作者:  
放在head中的JS代码会在页面加载完成之前就读取,而放在body中的JS代码,会在整个页面加载完成之后读取
那么有什么不同呢?先看一个例子:
一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0".
复制代码 代码如下:

<head>
function changelocation(id)
{…………}
</head>
<body><select class="input1" id="vSort0" name="vSort0" onChange="changelocation(document.form4.vSort0.options[document.form4.vSort0.selectedIndex].value);" style="width:100px;">……省略……</select>
………………
</body>

现在有个js脚本:
复制代码 代码如下:

<script LANGUAGE= "JavaScript" >
changelocation(document.form4.vSort0.options[document.form4.vSort0.selectedIndex].value); //初始化第一个一级分类的二级分类,去掉后第一个一级分类的二级分类在页面载入之后不显示。回选才显示。将一级分类的value传给changelocation()函数,生成二级分类的列表
</script>

那么把这个js脚本放head里面还是body里面呢?
答案是不仅要放到body里面,而且还得放到定义id='vSort0'的列表框后面,因为这个js脚本中有document.form4.vSort0.selectedIndex,如果放到head里或者body的id='vSort0'前,页面加载后顺序执行代码,执行到这个js发现vSort0未定义(即undefind),这个js也就失去了作用。
而为什么我们经常看到有很多的人把js脚本放到head里面没事呢?对!
就是因为你看到的在head里的js代码有onclick等事件传递了变量给函数。
这就告诉我们,如果我们想定义一个全局对象,而这个对象与页面中的某个按钮(等等)有关时, 我们必须将其放入body中,道理很明显:如果放入head,那当页面加载head部分的时候,那个按钮(等等)都还没有被定义(也可以说是还没有被加 载,因为加载的过程就是执行代码的过程,包括了定义),你能得到的只可能是一个undefind。

相关文章

  • D3.js封装文本实现自动换行和旋转平移等功能

    D3.js封装文本实现自动换行和旋转平移等功能

    之前小编和大家分享了SVG中如何配合使用text和tspan来实现换行的功能,所以这篇文章对此功能进行一下封装,以后就可以直接用了。有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • js简单实现HTML标签Select联动带跳转

    js简单实现HTML标签Select联动带跳转

    Select联动带跳转的效果想必大家并不陌生吧,下面有个不错的示例,感兴趣的朋友可以参考下
    2013-10-10
  • javascript文本模板用法实例

    javascript文本模板用法实例

    这篇文章主要介绍了javascript文本模板用法,实例分析了文本模板的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • JavaScript定义类和对象的方法

    JavaScript定义类和对象的方法

    这篇文章主要介绍了JavaScript定义类和对象的方法,分别以函数方式与Object类方式实现,是javascript非常重要的技巧,需要的朋友可以参考下
    2014-11-11
  • JavaScript仿静态分页实现方法

    JavaScript仿静态分页实现方法

    这篇文章主要介绍了JavaScript仿静态分页实现方法,可实现模拟静态效果的分页功能,并且可以控制分页的字符数,使用时可根据情况进行相应的字段修改即可,非常灵活实用,需要的朋友可以参考下
    2015-08-08
  • js,jQuery 排序的实现代码,网页标签排序的实现,标签排序

    js,jQuery 排序的实现代码,网页标签排序的实现,标签排序

    js,jQuery 排序的实现,网页标签排序的实现,标签排序,需要的朋友可以参考下。
    2011-04-04
  • 微信小程序调用腾讯地图API文档JavaScript SDK和WebService API详细解读

    微信小程序调用腾讯地图API文档JavaScript SDK和WebService API详细解读

    本文介绍了如何使用腾讯位置服务,包括申请开发者密钥、获取小程序APPID、下载地图SDK、设置服务器域名白名单等步骤,详细说明了如何在微信小程序中集成腾讯位置服务,进行地图展示和周边搜索等功能的实现,同时提醒注意API的调用次数和权限限制,需要的朋友可以参考下
    2024-09-09
  • JavaScript进阶教程之非extends的组合继承详解

    JavaScript进阶教程之非extends的组合继承详解

    组合继承有时候也叫伪经典继承,指的是将原型链和借用构造函数技术组合到一块,从而发挥二者之长的一种继承模式,下面这篇文章主要给大家介绍了关于JavaScript进阶教程之非extends的组合继承的相关资料,需要的朋友可以参考下
    2022-08-08
  • 详解小程序input框失焦事件在提交事件前的处理

    详解小程序input框失焦事件在提交事件前的处理

    这篇文章主要介绍了详解小程序input框失焦事件在提交事件前的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • JS如何使用正则表达式(match)截取括号中的文字和数字

    JS如何使用正则表达式(match)截取括号中的文字和数字

    正则表达式是一种用来匹配文本模式的工具,这篇文章主要给大家介绍了关于JS如何使用正则表达式(match)截取括号中文字和数字的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10

最新评论