点评:这篇文章主要介绍了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更多网页制作信息请查看: 网页制作 |