返回列表 发新帖

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

182.1k 7
swmozowtfl 发表于 2015-7-10 22:24:59|湖北 | 查看全部 阅读模式
点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下  K- p3 I/ I# Y; ~
一、动态加载脚本, Y* u* E, f- u- R% G/ M7 c2 B
当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
4 ^8 C2 I7 p5 Y. ^) C比如:我们想在需要检测浏览器的时候,再引入检测文件。& w8 N! c( H2 w2 S
代码如下:$ R6 h1 k! e: T; O
<script type=text/javascript>
; Q, ^* @! @1 Pwindow.onload = function(){
/ C( e* Y! w" f( C0 u' b# E+ Q4 Halert(typeof browserdetect);
! t! F& ?# _- O+ R# B; P0 ^; l}
. B+ `# S& W' }; X) q% u; _var flag = true; //设置 true 再加载) G# v5 ~- m5 E
if (flag) {
) r. u9 ]; C9 B# s7 q& zloadscript('browserdetect.js'); //设置加载的 js* m( r' k; j- r' |9 K* ~- N
}- v, Y* A6 o- g9 |7 ^; _4 S" ?, g
function loadscript(url) {
+ a; M+ J9 O) X# evar script = document.createelement('script');) K- t/ Y* j/ [
script.type = 'text/javascript';
' y$ G: z# a, v0 M) S3 |5 jscript.src = url;. U/ B6 z7 @! L1 i( C, ?/ I
//document.head.appendchild(script); //document.head 表示<head>
4 Z- @- X6 j( mdocument.getelementsbytagname('head')[0].appendchild(script);
- F: Y% z& b* r6 x( ^8 S1 I8 a}4 @. P( N# l1 `6 H  |, m
</script>动态执行 js</p> <p>
4 ~- K- O" g, y1 {$ v<script type=text/javascript>
% M) c" l- `6 M: R1 F, ?. e! ]1 Xwindow.onload = function(){( ?0 s+ f, Y  p( H
}
. y* t2 K  i: O2 }, N4 Yvar flag = true; //设置 true 再加载7 A* x4 z- v5 N3 z/ q. Y# x( a1 i" g
if (flag) {
' Y: u9 M! a4 k6 y8 ^var script = document.createelement('script');/ R" t* F7 `, y' ]
script.type = 'text/javascript';
% k: F. i4 x, ]! a, h0 Q6 Jvar text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错
& I# H4 ^  c9 N8 U  _$ }script.appendchild(text);5 V8 W0 o- d7 f
document.getelementsbytagname('head')[0].appendchild(script);
; f% h# W/ x# e5 ?' O5 ]1 R3 @- E}
, r3 J! B3 t( k9 l% H/ M</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>
; B% L# v: V8 L5 O) ], S<script type=text/javascript>5 m& B1 U. H% u+ D/ V7 e
window.onload = function(){4 |. E# M' x' ^: F& I
}
3 t, N1 O; I0 L% u1 Tvar flag = true; //设置 true 再加载
  Q. r3 p0 E% z/ wif (flag) {% @0 o; U5 T+ V. z( Q
var script = document.createelement('script');5 A" w7 ^3 w0 x
script.type = 'text/javascript';
5 k" C4 X! H7 I) ~4 v% @script.text = alert('lee');
+ I: M1 L0 x: e1 Ascript.appendchild(text);( f3 B- q: m: z; e: e
document.getelementsbytagname('head')[0].appendchild(script);
8 \/ d! s! x* y- e}
2 I+ O/ H' u7 i  e4 i) A; A. P! d1 X. v</script>需要做所有浏览器兼容
, W+ ]9 ~+ s# e8 {: C6 A3 L二、动态加载样式
5 C+ b5 N4 h! r5 k+ \( |为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。
& q$ P. ^( D- N$ _' Z. i动态执行 link
* t# t- T* h) J代码如下:
! x0 w/ S, c5 M# w8 Kvar flag = true;/ S, |0 E1 M! a  J
if (flag) {. v+ g$ Z& q% D7 B
loadstyles('basic.css');+ H- j0 c- }+ D' E) h8 X
}
) f9 b; }9 m2 {5 A* [* jfunction loadstyles(url) {
' a5 x% X$ n$ }+ i7 A0 cvar link = document.createelement('link');link.rel = 'stylesheet';8 |" j7 u2 \0 T8 o0 T" P" n8 g2 }& M" P
link.type = 'text/css';7 L; v' E' M. p) F2 t
link.href = url;
1 O7 e$ ], R- `8 Q8 Mdocument.getelementsbytagname('head')[0].appendchild(link);/ |% {4 H+ U( a8 O9 j& n, y
}
5 |6 t' a6 Y- t6 F: i, W! k7 {2 E, _3 C0 C( r/ e
动态执行 style
* i! B2 }; V, ~) Y7 l8 n( F$ Q代码如下:  Q0 i0 m- n% l) ?7 D
<script type=text/javascript>
! m+ Z5 t" G0 [( g2 ivar flag = true;
/ r8 |! k, M0 U- A  K9 ~4 O( Iif (flag) {% \5 x' k8 L6 o) \4 z2 D5 H
var style = document.createelement('style');
/ ?' U- [6 r& y. J: o- fstyle.type = 'text/css';$ q2 {& k8 p* M8 i
//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持
& G  w9 n2 \  Y, h( T//style.appendchild(box);
7 o4 G/ [' d  s3 r: K' kdocument.getelementsbytagname('head')[0].appendchild(style);: E7 b5 {  t' p8 M9 j' Q
insertrule(document.stylesheets[0], '#box', 'background:red', 0);
+ c: H1 p1 o* t}! W( n1 d1 j: y) }
function insertrule(sheet, selectortext, csstext, position) {8 u: z0 L; K! \: N# J; N  ~
//如果是非 ie6,7,8* h. b5 w) b+ P) Q: F
if (sheet.insertrule) {" W8 [& \2 p" k6 G' }& O, ]
sheet.insertrule(selectortext + { + csstext + }, position);+ V6 s+ I: j4 z9 W& U; T% s
//如果是 ie6,7,8! ]9 t$ L+ J  i& O
} else if (sheet.addrule) {
, l3 G9 Z+ E0 v& M- fsheet.addrule(selectortext, csstext, position);; U: ?9 Y' x, m( y) R1 r
}) B' M4 F) S3 C0 X% P
}
% L  K- b$ D% j3 V</script>' k/ E9 U1 O0 l- `. o/ ]
% P3 q; \6 ]0 z! h7 C8 F; J$ w
更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表