javascript实现动态加载CSS
最近我正在开发一个小框架的按需加载模块,需要实现异步动态加载CSS文件。经过一番深入研究,我得到了一个实用的解决方案,想与大家分享。
让我们看看如何通过JavaScript动态加载CSS文件。代码如下:
```html
function addStyle(stylePath) {
var container = document.getElementsByTagName("head")[0];
var addStyle = document.createElement("link");
addStyle.rel = "stylesheet";
addStyle.type = "text/css";
addStyle.media = "screen";
addStyle.href = stylePath;
container.appendChild(addStyle);
}
addStyle('
```
我还发现了一个非常实用的函数,不仅可以用于加载CSS文件,还可以加载JS文件,甚至可以用于实现网页换肤功能。代码如下:
```javascript
function $import(path, type, title) {
var s, i;
if (!type) type = path.substr(path.lastIndexOf(".") + 1);
if (type == "js") {
var ss = document.getElementsByTagName("script");
for (i = 0; i < ss.length; i++) {
if (ss[i].src && ss[i].srcdexOf(path) != -1 || ss[i].title == title) return ss[i];
}
s = document.createElement("script");
s.type = "text/javascript";
s.src = path;
if (title) s.title = title;
} else if (type == "css") {
var ls = document.getElementsByTagName("link");
for (i = 0; i < ls.length; i++) {
if (ls[i].href && ls[i].hrefdexOf(path) != -1 || ls[i].title == title) return ls[i];
}
s = document.createElement("link");
s.rel = "stylesheet";
s.type = "text/css";
s.href = path;
if (title) s.title = title;
s.disabled = false; // 确保样式表被立即加载并应用,而不是在文档完全加载后才生效。
} else return;
var head = document.getElementsByTagName("head")[0];
head.appendChild(s);
return s;
}
``` 可以通过调用`$import`函数来按需加载JS或CSS文件,例如:`$import('path/to/your/script.js', 'js')` 或 `$import('path/to/your/style.css', 'css')`。这个函数非常灵活,可以根据需要加载不同的资源。这个函数对于实现网页换肤功能特别有用,只需改变CSS文件的路径即可实现皮肤更换。这是一个非常实用的函数,值得大家深入研究并应用到实际开发中。
编程语言
- javascript实现动态加载CSS
- SQL普通表转分区表的方法
- 详解sql中exists和in的语法与区别
- Vue使用vux-ui自定义表单验证遇到的问题及解决方
- asp.net利用存储过程实现模糊查询示例分享
- 详谈php中 strtr 和 str_replace 的效率问题
- SQL创建的几种存储过程
- bootstrap多层模态框滚动条消失的问题
- MySQL如何为字段添加默认时间浅析
- bootstrap警告框使用方法解析
- JS防止网页被嵌入iframe框架的方法分析
- jQuery中map()方法用法实例
- 用javascript实现自动输出网页文本
- Angular 4环境准备与Angular cli创建项目详解
- AngularJS使用$http配置对象方式与服务端交互方法
- Javascript中关于Array.filter()的妙用详解