利用js文件插入另外一个js动态加载一个外部 JavaScript 文件
const hqScript = document.createElement('script');
hqScript.src = '//xxxx.com/assets/front/ymwl_1.js';
hqScript.onload = () => {
console.log('hqScript loaded successfully!');
};
hqScript.onerror = () => {
console.error('Error loading hqScript.');
};
document.head.appendChild(hqScript);
/*代码*/
这段代码的作用是动态加载一个外部 JavaScript 文件,并在加载成功或失败时执行相应的回调函数。具体的步骤和含义如下:
1. 创建 script
标签
const hqScript = document.createElement('script');
document.createElement('script')
会创建一个新的<script>
标签,这个标签尚未插入到页面中。hqScript
是一个引用这个<script>
元素的变量,后续会设置其src
属性来指定要加载的 JavaScript 文件。
2. 设置 src
属性
hqScript.src = '//heiqwi.com/assets/front/ymwl_1.js';
- 通过将
hqScript.src
设置为'//heiqwi.com/assets/front/ymwl_1.js'
,代码指定了要加载的外部 JavaScript 文件的 URL。 - 注意这里使用的是相对协议(
//
),这意味着加载的文件会根据当前页面的协议来选择:如果当前页面是http://
,则请求的 URL 是http://heiqwi.com/assets/front/ymwl_1.js
;如果当前页面是https://
,则请求的 URL 是https://heiqwi.com/assets/front/ymwl_1.js
。
3. 加载成功后的回调函数
hqScript.onload = () => {
console.log('hqScript loaded successfully!');
};
hqScript.onload
设置了一个事件处理程序,在<script>
标签成功加载并执行后调用这个回调函数。- 在回调函数中,调用
console.log('hqScript loaded successfully!')
输出一条消息,表示脚本加载成功。
4. 加载失败后的回调函数
hqScript.onerror = () => {
console.error('Error loading hqScript.');
};
hqScript.onerror
设置了一个事件处理程序,在<script>
标签加载失败时调用这个回调函数。- 如果加载过程出现问题(例如文件不存在、网络错误等),会调用
console.error('Error loading hqScript.')
输出错误信息到浏览器的控制台。
5. 将 script
标签添加到文档头部
document.head.appendChild(hqScript);
document.head.appendChild(hqScript)
将刚才创建的<script>
标签插入到页面的<head>
元素中。- 这样浏览器就会开始加载指定的 JavaScript 文件
ymwl_1.js
。
6. 注释:客服代码
/*客服代码*/
- 这只是一个注释,告诉开发者这段代码是用来加载一个与客服相关的 JavaScript 文件。注释本身不会影响代码执行。
总结
这段代码实现了以下功能:
- 动态创建并加载一个外部 JavaScript 文件
ymwl_1.js
。 - 加载成功时,打印
hqScript loaded successfully!
到控制台。 - 加载失败时,打印
Error loading hqScript.
到控制台。 - 这个 JavaScript 文件似乎与客服系统相关,因此注释中标明了“客服代码”。
通过这种方式,开发者可以按需加载外部脚本,而不是在页面加载时立即加载所有脚本,从而提高页面的加载速度和性能。