JavaScript动态加载CSS与JS文件的方法实现

作者:像素漫游时间:2026-10-29 16:08:36浏览:284

本文介绍了在JavaScript中动态加载CSS和JS文件的多种实现方式。通过创建link或script节点并插入DOM,可实现按需加载。文中提供了封装对象及独立函数的完整代码示例,涵盖文件路径加载与内联脚本注入,兼容主流浏览器,适用于前端性能优化场景。

在项目开发中,若需动态加载CSS文件,可将其与JS加载功能整合为一个工具对象。以下是具体实现代码:


var dynamicLoading = {
 css: function(path){
 if(!path || path.length === 0){
 throw new Error('argument "path" is required !');
 }
 var head = document.getElementsByTagName('head')[0];
 var link = document.createElement('link');
 link.href = path;
 link.rel = 'stylesheet';
 link.type = 'text/css';
 head.appendChild(link);
 },
 js: function(path){
 if(!path || path.length === 0){
 throw new Error('argument "path" is required !');
 }
 var head = document.getElementsByTagName('head')[0];
 var script = document.createElement('script');
 script.src = path;
 script.type = 'text/javascript';
 head.appendChild(script);
 }
}

该对象包含两个独立方法,分别用于加载CSS和JS文件,参数均为目标文件路径。其原理简单:根据文件类型创建对应的DOM节点,设置相应属性后,将其插入到head标签中。经测试,该方法兼容各类主流浏览器,安全且稳定,是Web开发中的常用工具。

以下是具体的调用示例,操作非常简便:


//动态加载 CSS 文件
dynamicLoading.css("test.css");

//动态加载 JS 文件
dynamicLoading.js("test.js");

动态加载js和css

在开发过程中,动态加载JS和CSS文件是常见需求。本文对此类常用方法进行了总结。

1、动态加载js

方法一:动态加载js文件


// 动态加载js脚本文件
 function loadScript(url) {
 var script = document.createElement("script");
 script.type = "text/javascript";
 script.src = url;
 document.body.appendChild(script);
 }
 // 测试
 loadScript("javascript/lib/cookie.js");

方法二:动态加载js脚本


// 动态加载js脚本
 function loadScriptString(code) {
 var script = document.createElement("script");
 script.type = "text/javascript";
 try{
  // firefox、safari、chrome和Opera
  script.appendChild(document.createTextNode(code));
 }catch(ex) {
  // IE早期的浏览器 ,需要使用script的text属性来指定javascript代码。
  script.text = code;
 }
 document.body.appendChild(script);
 }
 // 测试
 var text = "function test(){alert('test');}";
 loadScriptString(text);
 test();

2、动态加载css

方法一:动态加载css文件


// 动态加载css文件
 function loadStyles(url) {
 var link = document.createElement("link");
 link.type = "text/css";
 link.rel = "stylesheet";
 link.href = url;
 document.getElementsByTagName("head")[0].appendChild(link);
 }
 // 测试
 loadStyles("css/secondindex.css");

方法二:动态加载css脚本


// 动态加载css脚本
 function loadStyleString(cssText) {
 var style = document.createElement("style");
 style.type = "text/css";
 try{
  // firefox、safari、chrome和Opera
  style.appendChild(document.createTextNode(cssText));
 }catch(ex) {
  // IE早期的浏览器 ,需要使用style元素的stylesheet属性的cssText属性
  style.styleSheet.cssText = cssText;
 }
 document.getElementsByTagName("head")[0].appendChild(style);
 }
 // 测试
 var css = "body{color:blue;}";
 loadStyleString(css);

比较直接的代码


var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.href = "/css/indexIE.css";
link.rel = 'stylesheet';
link.type = 'text/css';
head.appendChild(link);	

以上介绍了JavaScript动态加载CSS和JS文件的具体实现方法,希望对读者有所帮助。

作者最新文章