返回列表 发新帖

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

182.1k 7
swmozowtfl 发表于 2015-7-10 22:24:59|湖北 | 查看全部 阅读模式
点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下( L" T6 {3 A: k" j1 h" b/ o8 D
一、动态加载脚本% V3 U% q/ \. c5 O, C- A! v! U
当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
* F  F1 E$ ]- Z( [3 V比如:我们想在需要检测浏览器的时候,再引入检测文件。
$ c2 b/ [$ F  d" x代码如下:
; H9 y1 I& N. G& }8 Y<script type=text/javascript>& r+ M+ C4 r. V, R  i: W7 V
window.onload = function(){
9 ?5 w7 F' W/ U" R& U  dalert(typeof browserdetect);. n4 b9 R& G, ], }0 h2 i
}
) W0 b* J  w- _var flag = true; //设置 true 再加载
" q$ F( H. m" U. Y1 zif (flag) {
# a" z0 D' r! U. c0 Zloadscript('browserdetect.js'); //设置加载的 js
! Z6 \$ q* N) L8 D: U1 u}1 s7 h1 L8 G: y( ]) i7 q  s
function loadscript(url) {
( h8 [+ v) E5 ]1 `( H2 Pvar script = document.createelement('script');
0 ?% d: f4 c1 z! qscript.type = 'text/javascript';/ m- i! |. j% }  B
script.src = url;7 U# i. l' Q- H' w
//document.head.appendchild(script); //document.head 表示<head>
" S3 a+ w' Z6 U' mdocument.getelementsbytagname('head')[0].appendchild(script);: s/ J; r7 g. C/ F; U" H" X
}
; n' e% z  t+ Y" i5 F</script>动态执行 js</p> <p>! o; b. M0 n' k1 ~' m- Z2 h
<script type=text/javascript>
7 d3 ]8 ~8 i$ M8 ?' ]window.onload = function(){% E# k0 y6 t) ?' C
}
; x6 \- j, z1 v2 ?- U" vvar flag = true; //设置 true 再加载& M3 K. A! z+ Q
if (flag) {/ d2 G: Z# m, ]/ m9 T
var script = document.createelement('script');* H7 m1 _# Q9 U; z$ K; z
script.type = 'text/javascript';6 ~2 n5 |' O& ^
var text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错
: o6 Y% t+ I. C* |( ascript.appendchild(text);7 R- e5 ^5 S9 g) p6 \
document.getelementsbytagname('head')[0].appendchild(script);0 ^2 k. m  r' _/ ?( O9 B
}8 J) a+ q2 f9 v  c" j# v* I
</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>. Z7 s. M! Q& X
<script type=text/javascript>
$ W( S" G0 r- Xwindow.onload = function(){
! R) w$ _9 X2 w  r! e}
. v; a# R+ p  J$ }6 b; Pvar flag = true; //设置 true 再加载
+ m1 @2 o' M5 k# vif (flag) {8 W9 }. }# z- `  Z  m% a
var script = document.createelement('script');
  `( L0 w& _/ N- cscript.type = 'text/javascript';
2 z- m/ M1 S0 s  Q: _# Fscript.text = alert('lee');4 N7 h- X$ J5 \3 E! f0 M& W
script.appendchild(text);
( c2 \1 P" g5 I  t0 v6 qdocument.getelementsbytagname('head')[0].appendchild(script);
+ U5 I& ~% l* Y. C}5 f. ?3 X( A7 T! V' z% W8 n
</script>需要做所有浏览器兼容
# r9 K0 b3 l" R6 F' [" |二、动态加载样式- d4 S/ P3 n0 u* C4 T" @
为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。
) `- t& t6 Z& g# P动态执行 link
7 f) V+ C1 e; {$ x% t代码如下:3 p) r# L" d6 V1 N0 @5 m
var flag = true;+ w; D, F5 |9 \0 S
if (flag) {
. p& b1 e1 _) q' b/ O4 tloadstyles('basic.css');
. c3 q% h! J5 R8 `8 e( e}& E' ^0 F/ s6 X( q
function loadstyles(url) {
- N6 B- ~0 M0 P  k1 ~var link = document.createelement('link');link.rel = 'stylesheet';; |& a9 B1 w4 t) d% u
link.type = 'text/css';
  E/ y$ }# Q8 d+ g. g( q+ \link.href = url;& b5 @5 t) T* v, j; V
document.getelementsbytagname('head')[0].appendchild(link);
6 v. e2 b5 u( }}
' N" S% o% ~: X8 Q+ c5 E
/ |& t$ j% q1 M1 }( e  E动态执行 style  t: N# B: k4 N9 |% T
代码如下:3 m$ _& |  e9 E' }+ J
<script type=text/javascript>
7 c* H6 K. Z( C# O9 [% _( ^6 s9 ^) P/ ~var flag = true;# N# C- e$ Z  G; z* p: \
if (flag) {5 Z: \) s& }1 k6 i& ~* D' Z+ Q
var style = document.createelement('style');
+ o# L& q2 a6 N. f: @style.type = 'text/css';3 ?, d8 C4 Z5 ~' A
//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持, E3 K* I6 [% ]' z* C: v) V
//style.appendchild(box);. ]) X) r! ]0 G
document.getelementsbytagname('head')[0].appendchild(style);
' Z  A, v1 O! w7 b9 [insertrule(document.stylesheets[0], '#box', 'background:red', 0);" P3 m9 K( b+ O
}& m' I: ]7 v. A% V! C
function insertrule(sheet, selectortext, csstext, position) {8 P8 ^, k/ B# `5 ^, ^: C
//如果是非 ie6,7,8& Q$ a) s% M  K) Z
if (sheet.insertrule) {, y  e' y$ A- o
sheet.insertrule(selectortext + { + csstext + }, position);
; n3 x/ [6 X+ z5 y+ A+ r3 x//如果是 ie6,7,8
; Y4 ^: j8 A. H8 j+ e" f5 [% e; R) ~( G} else if (sheet.addrule) {# |" w. {/ u4 O- N
sheet.addrule(selectortext, csstext, position);
4 G- q* W; g! d, P8 M! b: j}
$ d. D. \4 O6 q& f& Q}
$ f1 f! i' k- y5 |/ |, Q</script>5 Z8 K: z$ p( |" B% U

2 L, R, B% b% f1 O3 F% O更多网页制作信息请查看: 网页制作

回复|共 7 个

wwdu926a 发表于 2015-7-23 19:00:10|澳大利亚 | 查看全部
系统居然怀疑我灌水,我身边又没有水龙头。哦…明白了,身上有一个……
GoodyFouppy 发表于 2015-7-23 19:04:34|瑞士 | 查看全部
经过你的指点 我还是没找到在哪 ~~~
seazvyt 发表于 2015-7-23 19:04:36|Reserved | 查看全部
老天不公啊.....
seazvyt 发表于 2015-9-11 21:04:16|香港 | 查看全部
我.......伤心
gevaemaidovef 发表于 2015-9-11 21:04:19|台湾 | 查看全部
我又回复了
bqtklouu 发表于 2015-9-11 21:04:30|浙江 | 查看全部
我的我的 忘记了 呵呵
bqtklouu 发表于 2015-9-11 21:05:02|美国 | 查看全部
哈 你逗逗他啊

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表