js代码放在head和body的区别(QRCode生成)

1.在head中时,所代表的functions只加载而不执行,执行是在某一事件触发后才开始。

2.在body中时,直接加载并执行

典型的区别:

如果有不在函数中的执行语句,比如变量初始化,如果在head中就不会执行。

举个栗子:

这段代码会生成一个二维码,二维码的跳转地址为text中超链接

a.js放在body中,可生成二维码

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="js/jquery.qrcode.min.js"></script>
</head>

<body>
    <div id="qrcode"></div>
    <script>
        $(‘#qrcode‘).qrcode({
            width: 128,
            height: 128,
            text: "http://www.bsnc.cn"
        })
    </script>
</body>

</html>

b.js放在head中,网页为空白,没有执行js中内容

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="js/jquery.qrcode.min.js"></script>
<script>
        $(‘#qrcode‘).qrcode({
            width: 128,
            height: 128,
            text: "http://www.bsnc.cn"
        })
    </script>
</head>

<body>
    <div id="qrcode"></div>
</body>

</html>

c.js放在head中,用window.onload函数执行js文件,这样仍然会生成二维码

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="js/jquery.qrcode.min.js"></script>
    <script>
        window.onload = function() {
            $(‘#qrcode‘).qrcode({
                width: 128,
                height: 128,
                text: "https://www.cnblogs.com/GG-Bond/"
            })
        }
    </script>
</head>

<body>
    <div id="qrcode"></div>
</body>

</html>

总结:body中js代码直接执行,head中代码需要触发条件

原文地址:https://www.cnblogs.com/GG-Bond/p/9634261.html

时间: 2024-10-13 13:58:59

js代码放在head和body的区别(QRCode生成)的相关文章

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

那么有什么不同呢?先看一个例子: 一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0". 复制代码代码如下: <head> function changelocation(id) {…………} </head> <body><select class="input1" id="vSort0" name="vSort0" onChange="changeloca

js代码放在&lt;head&gt;后面和放在&lt;body&gt;后面的区别

javascript代码写在<head>里面: 由于这时候网页主体(body)还未加载,所以这里适合放一些不是立即执行的自定义函数,立即执行的语句则很可能会出错(视浏览器而定) javascript代码写在<body>里面: 这里可以放函数也可以放立即执行的语句,但是如果需要和网页元素互动的(比如获取某个标签的值或者给某个标签赋值),Javascript代码务必在标签的后面 javascript代码写在<body>下面: 这时候整个网页已经加载完毕了,所以这里最适合放需

延时加载js代码提高速度

延时加载js代码提高速度:如果网页中存在大量的javascript代码会极大的影响网页的访问速度,下面就简单介绍一下如何处理此问题.一.延时加载js文件:可以使用定时器函数setTimeout()让外部的js文件延迟加载,例如: <script type="text/javascript" src="" id="my"></script> <script type="text/javascript"

javascript放在head和body的区别(w3c建议放在head标签中)

JavaScript脚本放在哪里 在HTML body部分中的JavaScripts会在页面加载的时候被执行. 在HTML head部分中的JavaScripts会在被调用的时候才执行. -------------------------- head 部分中的脚本: 需调用才执行的脚本或事件触发执行的脚本放在HTML的head部分中.当你把脚本放在head部分中时,可以保证脚本在任何调用之前被加载. <html>   <head>   <script type="t

最新的JavaScript核心语言标准&mdash;&mdash;ES6,彻底改变你编写JS代码的方式!【转载+整理】

原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructuring 箭头函数 Arrow Functions Symbols 集合 学习Babel和Broccoli,马上就用ES6 代理 Proxies ES6 说自己的宗旨是"凡是新加入的特性,势必已在其它语言中得到强有力的实用性证明."--TRUE!如果你大概浏览下 ES6 的新特性,事实上它

如何才能优雅地书写JS代码

第一:关于匿名函数的使用 要避免全局变量泛滥, 可以考虑使用匿名函数, 把不需要在外部访问的变量或者函数限制在一个比较小的范围内. 例如以下代码: <script> function func1(){ var list = ["a", "b", "c"]; for(var i = 0; i < list.length; i++){ //.. }; } func1(); // 自动运行 </script> 上述代码的作

.Net中使用response.write(&#39;js代码&#39;)后css失去效果,解决办法。

net中使用response.write输出js会将js放在源代码的最前面,这样就可能出现破坏网页css的效果,让css失去效果 .net中使用Page.ClientScript.RegisterStartupScript(this.GetType(), "", " <script lanuage=javascript>if(confirm('确定要交卷吗?')==false){history.back()}; </script>"); 可以

JS中的setTimeout和setInterval的区别

学了许久的javascript,发现其中非常常用的两个函数,就是setInterval和setTimeout函数,对这两个函数的理解,有时觉得很模糊,经过多次的试验,终于对它有了比较深入的了解.定义,setInterval()-- 间隔指定的毫秒数不停地执行指定的代码.setTimeout,延迟两秒调用函数,这个定义非常的简单,但是它并不像字面意思上那么的简 很多人都觉得这两个方法差不多,但是,实际上,他们差的很远呢     因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指

精品JS代码收藏大全

1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键    <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return false"> 取消选取.防止复制 3. onpaste="return false&quo