JS代码放在head和body中的区别分析_javascript技巧
程序员文章站
2022-04-23 21:39:43
...
那么有什么不同呢?先看一个例子:
一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0".
function changelocation(id)
{…………}
………………
现在有个js脚本:
那么把这个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。
一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0".
复制代码 代码如下:
function changelocation(id)
{…………}
………………
现在有个js脚本:
复制代码 代码如下:
那么把这个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。
推荐阅读
-
js中hash和ico的关联分析_javascript技巧
-
js中hash和ico的关联分析_javascript技巧
-
获取内联和链接中的样式(js代码)_javascript技巧
-
JS中的substring和substr函数的区别说明_javascript技巧
-
javascript中基本类型和引用类型的区别分析_javascript技巧
-
js表单提交和submit提交的区别实例分析_javascript技巧
-
深入分析js中的constructor和prototype_javascript技巧
-
JS中的substring和substr函数的区别说明_javascript技巧
-
javascript中基本类型和引用类型的区别分析_javascript技巧
-
js中同步与异步处理的方法和区别总结_javascript技巧