»

在JS文件中加载JS文件的方法

    网站建设  
工作WP RocketCDNCDN的问题伪静态数据库IISApache前端SEO腾讯云加速访客插件cookieswordpress网络安全重定向百度云加速Wp Super CacheHTTP标头web.config又拍云CDNhtaccessWordPress插件建站

在很多情况下,我们会遇到一个问题,就是如何在一个 Javascript 文件里再加载另一个 Javascript 文件,并完成一定的功能,如何实现一个 JS 文件加载另一个 JS 文件呢?

有些人使用 document.write 的方式来加载  js,这种方法有很多问题,并不推荐使用这种方法。

这里就介绍几种常见的调用方法。

先创建一个公共的脚本文件如下:

var js = document.createElement('script');
js.src = 'myscript.js';

接着通过几种不同的方法将该脚本加载。

 

1、加载在头部

var js = document.createElement('script');
js.src = 'myscript.js';
document.getElementsByTagName('head')[0].appendChild(js);

 

另一种写法是:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

var js = document.createElement('script');
js.src = 'myscript.js';
document.head.appendChild(js);

 

2、加载在 BODY 中

加载在页面中的写法如下:

var js = document.createElement('script');
js.src = 'myscript.js';
document.body.appendChild(js);

 

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

这种加载方法存在一个问题,就是有可能代码是在head区域,导致 body 还没达到,document.body 就不存在,代码就会出错。

 

3、使用 documentElement

document.documentElement 就是 html 文档本身,因此肯定是存在的,这种调用的写法如下:

var js = document.createElement('script');
js.src = 'myscript.js';
var html = document.documentElement;
html.insertBefore(js, html.firstChild);

 

4、加载在第一个脚本前

这种方法是把 js 文件插入到第一个出现 script 的标识前,除非网页里没有任何一个 script 出现,否则应该不会出错。代码的写法如下:

本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2024. All Rights Reserved

var js = document.createElement('script');
js.src = 'myscript.js';
var first = document.getElementsByTagName('script')[0];
first.parentNode.insertBefore(js, first);

 

5、加载在当前JS文件之前或之后

这种方法是把js文件插入到目前所在的js文件前,代码的写法如下:

本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利

var js = document.createElement('script');
js.src = 'myscript.js';
var first = document.getElementsByTagName('script'); 
var here = first[first.length-1];
here.parentNode.insertBefore(js,here);

 

加载在当前js文件之后,代码的写法如下:

var js = document.createElement('script');
js.src = 'myscript.js';
var first = document.getElementsByTagName('script'); 
var here = first[first.length-1]; 
here.parentNode.appendChild(js);

 

来源:月光博客

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 1507字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →