html动态加载css样式和js脚本示例

所属分类: 网页制作 / HTML/Xhtml 阅读数: 1078
收藏 0 赞 0 分享

一、动态加载脚本

当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 JS 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
比如:我们想在需要检测浏览器的时候,再引入检测文件。


复制代码
代码如下:

<script type="text/javascript">
window.onload = function(){
alert(typeof BrowserDetect);
}
var flag = true; //设置 true 再加载
if (flag) {
loadScript('browserdetect.js'); //设置加载的 js
}
function loadScript(url) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
//document.head.appendChild(script); //document.head 表示<head>
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>动态执行 js</p> <p>
<script type="text/javascript">
window.onload = function(){

}
var flag = true; //设置 true 再加载
if (flag) {
var script = document.createElement('script');
script.type = 'text/javascript';
var text = document.createTextNode("alert('Lee')"); //IE6,7,8 浏览器报错
script.appendChild(text);
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>IE 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>
<script type="text/javascript">
window.onload = function(){

}
var flag = true; //设置 true 再加载
if (flag) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.text = "alert('Lee')";
script.appendChild(text);
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>需要做所有浏览器兼容

二、动态加载样式

为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。

动态执行 link


复制代码
代码如下:

var flag = true;
if (flag) {
loadStyles('basic.css');
}
function loadStyles(url) {
var link = document.createElement('link');link.rel = 'stylesheet';
link.type = 'text/css';
link.href = url;
document.getElementsByTagName('head')[0].appendChild(link);
}

   
动态执行 style


复制代码
代码如下:

<script type="text/javascript">
var flag = true;
if (flag) {
var style = document.createElement('style');
style.type = 'text/css';
//var box= document.createTextNode('#box{background:red}');// IE6,7,8 不支持
//style.appendChild(box);
document.getElementsByTagName('head')[0].appendChild(style);
insertRule(document.styleSheets[0], '#box', 'background:red', 0);
}
function insertRule(sheet, selectorText, cssText, position) {
//如果是非 IE6,7,8
if (sheet.insertRule) {
sheet.insertRule(selectorText + "{" + cssText + "}", position);
//如果是 IE6,7,8
} else if (sheet.addRule) {
sheet.addRule(selectorText, cssText, position);
}
}
</script>

更多精彩内容其他人还在看

移动 web 端屏幕适配(rem)

这篇文章主要介绍了移动 web 端屏幕适配(rem)。详细的介绍了移动 web 端屏幕适配(rem),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解前端在html页面之间传递参数的方法

这篇文章主要介绍了详解前端在html页面之间传递参数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

html form表单input使用disabled后提交不能获取表单值的解决方法

这篇文章主要介绍了html form表单input使用disabled后提交不能获取表单值的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

DIV的失去焦点(blur)实现方法

这篇文章主要介绍了DIV的失去焦点(blur)实现方法,用防抖实现DIV鼠标移出消失,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解HTML onfocus获得焦点和onblur失去焦点事件

这篇文章主要介绍了详解HTML onfocus获得焦点和onblur失去焦点事件的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

HTML中两个tabs导航冲突问题的解决方法

这篇文章主要介绍了HTML中两个tabs导航冲突问题的解决方法,需要的朋友参考下吧
收藏 0 赞 0 分享

详解html中 position属性用法(四种)

这篇文章主要介绍了html中 position用法,文中逐一给大家介绍了position的四个属性值,感兴趣的朋友跟随小编一起看看吧
收藏 0 赞 0 分享

详解左右宽度固定中间自适应html布局解决方案

这篇文章主要介绍了详解左右宽度固定中间自适应html布局解决方案的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解 html area标签

area 元素总是嵌套在 <map> 标签中。本文重点给大家介绍html area标签的相关知识,需要的朋友参考下吧
收藏 0 赞 0 分享

HTML高亮关键字的完美解决方案

最近项目做晕头,一个接一个,其中遇到这样的一个功能,在网页中高亮关键字的实现方法,下面小编把实现代码及解决方案分享给大家,感兴趣的的朋友跟随小编一起看看吧
收藏 0 赞 0 分享
查看更多