点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下; M+ c8 _7 _* q' J5 W( V* n
一、动态加载脚本& k6 Z$ F0 s) g# A: O+ R. V
当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
( V, J# i( }; m( p. r, W比如:我们想在需要检测浏览器的时候,再引入检测文件。6 @; L n5 v/ `
代码如下:5 W1 o8 M" x7 n! R& Q6 _
<script type=text/javascript>9 G5 G# S& Z. K
window.onload = function(){ A" ]' F* q+ A1 T* A
alert(typeof browserdetect);$ W- K4 [' U$ Q; A% [5 W: _8 Z* o* t
}
( \, i- }0 c. g8 t+ W: qvar flag = true; //设置 true 再加载
# G: D7 a4 w' q w, W7 r( q; Y( nif (flag) {4 y& w* }0 ^# g; @2 I- h( S
loadscript('browserdetect.js'); //设置加载的 js( y/ p2 K; T! V' k) U
}: U$ V2 T7 E* [5 O
function loadscript(url) {
; z) o: R/ g3 E) F u- e7 Lvar script = document.createelement('script');
) |; d3 d8 U4 B R) u7 tscript.type = 'text/javascript';8 T% ~$ R: s n7 L9 W
script.src = url;
6 G/ [6 |0 e# [; Q0 }7 y//document.head.appendchild(script); //document.head 表示<head>
# \7 m0 T/ `4 _' sdocument.getelementsbytagname('head')[0].appendchild(script);
$ t! W* G/ E6 ~! I8 e5 ^; M; p}3 I; S8 |$ E2 r0 c9 q) h1 n
</script>动态执行 js</p> <p>( d( ]1 W$ Z0 ^, U
<script type=text/javascript>
5 T' h: {0 e9 G) u5 k3 pwindow.onload = function(){+ ]7 l! _2 ]# \9 F& b7 m$ ~
}
2 X1 Y7 g3 ~! \6 dvar flag = true; //设置 true 再加载
. U* V- I+ W( P% l# Fif (flag) {9 t: e- O. u. F" {
var script = document.createelement('script');
' I4 B, F8 p2 x+ J3 _ l, y% vscript.type = 'text/javascript';
k9 P& o5 P4 x" f; V3 r) Tvar text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错3 I7 i6 ^/ T; o9 ]% v& Z1 d) g* B
script.appendchild(text);' }; ~- Y2 E) {; F! [$ N7 |, {
document.getelementsbytagname('head')[0].appendchild(script);
: w0 A: n! R' x4 w/ ?9 y' z}
) p$ n3 u/ h/ ~' F+ o, v) R</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>/ | @0 _; S/ v% H# y3 q h
<script type=text/javascript>
4 L# \" W! N6 _$ {8 U1 Vwindow.onload = function(){3 s+ v' }" |% F4 d
}6 ^+ L- `$ q& G! O2 i5 D: @) W
var flag = true; //设置 true 再加载
( Z+ _* @, L% B. @( ~5 X% Lif (flag) {6 p0 r+ Z) t6 Q" N* ~- x" E- t
var script = document.createelement('script');
' m; ^2 X6 V. {+ C! kscript.type = 'text/javascript';
, A ^! g3 j4 T9 y8 g: }+ C Q$ K* Uscript.text = alert('lee');1 o) g1 y3 S1 Q
script.appendchild(text);
$ u& h2 K+ n% V! Xdocument.getelementsbytagname('head')[0].appendchild(script);) L1 ~8 \% h9 J5 o* }: }
}
2 g; Z G5 G( N' R3 k6 g</script>需要做所有浏览器兼容
4 J# K g& _6 ~" [二、动态加载样式& Z0 a8 ]& \! t2 W
为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。
" M5 h J( u- i. j3 {7 _# z动态执行 link
+ w/ j8 S8 T* I- B) [代码如下:0 E& z5 U' \: p- W
var flag = true;" w$ e1 x- R1 b, p0 V. V
if (flag) {
0 }( q9 n/ l4 yloadstyles('basic.css');- h: w8 c) K1 T5 v9 x, O3 d" X
}
& A6 p4 h. `% ~# q E \; Lfunction loadstyles(url) {7 c% H: X t2 S: `& S
var link = document.createelement('link');link.rel = 'stylesheet';! S6 X. l! @* A [& d# i) H0 x
link.type = 'text/css';
: v9 G9 Q" a2 }. K8 f/ slink.href = url;; R+ j4 B( J# Y$ R- Z K, e
document.getelementsbytagname('head')[0].appendchild(link);: v3 R+ x; r$ |) a* L( h' j. s
}$ S! O9 Z% u/ p, R2 q' v
! t& t& S4 x$ M- s) ]& k* @& F动态执行 style
" s9 D. a3 X; z! k- |6 j! l5 W. j代码如下:7 ]! `6 S* D% q j' I& e3 N' H, o m9 ]
<script type=text/javascript>
- L' z s$ V$ u$ I# e+ h5 ivar flag = true;
7 `- z' e' @ i, Vif (flag) {
6 J0 j) u2 ~2 i: ovar style = document.createelement('style');
% p6 ^1 R( [, l2 }style.type = 'text/css';0 f* V# J# k* A9 J% s, h
//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持$ h1 K! ^$ r% F! A" ~
//style.appendchild(box);) j q# z3 e! Q0 [% v
document.getelementsbytagname('head')[0].appendchild(style);- H, Y) U9 z% h- q6 Q4 J
insertrule(document.stylesheets[0], '#box', 'background:red', 0);
9 k; U5 L5 |/ w) t" h' B}
; [" U" \3 [, B8 efunction insertrule(sheet, selectortext, csstext, position) {
% O0 f% @2 z* v& ]7 Z+ t3 ^//如果是非 ie6,7,80 M/ z- v$ C7 A. b, S
if (sheet.insertrule) {9 W; p" r% V8 H- r9 E; Q
sheet.insertrule(selectortext + { + csstext + }, position);
9 r8 J) A7 M/ S//如果是 ie6,7,8) T4 c @+ l/ Q8 i, c
} else if (sheet.addrule) {
8 n( ?, H m% E0 A$ S4 Qsheet.addrule(selectortext, csstext, position);
! X8 ^1 |/ q. |1 [ ]}
4 d# l3 y$ m3 {2 Z}
& h' [- {/ X2 B7 r) W, J- h</script>
) q" n8 E9 ?( N7 m. g& d' j
1 N; ^7 }6 T9 J( P* s更多网页制作信息请查看: 网页制作 |