返回列表 发新帖

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

182.4k 7
swmozowtfl 发表于 2015-7-10 22:24:59|湖北 | 查看全部 阅读模式
点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下$ W0 c; Y: x" a8 ?* A
一、动态加载脚本! h0 b6 r3 j3 j4 k/ o
当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
2 h% k$ r! M# K! f; M比如:我们想在需要检测浏览器的时候,再引入检测文件。. B% T! h+ ~# m* @! j
代码如下:
/ U+ I: m5 {1 ?1 L3 V<script type=text/javascript>% ^4 m% h/ N. m$ s
window.onload = function(){
, c" |/ h( v& n1 yalert(typeof browserdetect);
6 B# `" Y3 |, ^' H}- H4 J9 b1 M' m* [+ c# j
var flag = true; //设置 true 再加载
5 W6 Q' i* [% F- y9 qif (flag) {* ^+ {0 d8 w4 D) Y1 t/ X8 P
loadscript('browserdetect.js'); //设置加载的 js, B1 s3 A) ?& }: N0 @
}, }. ~; @9 l/ Z7 z3 V
function loadscript(url) {' Z9 d! Z: K- U
var script = document.createelement('script');; _. v, g3 O' {, {
script.type = 'text/javascript';
4 K, B$ o1 u0 a$ Iscript.src = url;. a# K, F1 ?! _9 c
//document.head.appendchild(script); //document.head 表示<head>
2 n2 P; J9 S8 U6 B( ^" Zdocument.getelementsbytagname('head')[0].appendchild(script);$ I: l% \/ l! j+ C
}
- ~, W  Z  x8 o</script>动态执行 js</p> <p>+ v, X5 T) _  o7 I8 \
<script type=text/javascript>4 P. O! U) Q. |
window.onload = function(){
9 Y' M0 b( y4 p$ l( G+ n}
+ v. Z- c* A( U0 ]& pvar flag = true; //设置 true 再加载
; |. S- w! v5 |1 N9 I# \if (flag) {
8 U, |1 A- K$ q( `! l2 q8 h* Bvar script = document.createelement('script');
# [- B, K* X" h. C4 v4 g$ c9 Mscript.type = 'text/javascript';8 v, y. p1 w+ b9 \
var text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错  K0 g# E/ p. K" H5 q+ U
script.appendchild(text);/ V. T( a: g4 @7 `; ^+ a
document.getelementsbytagname('head')[0].appendchild(script);- e& n: ?5 C+ J" u, s# U
}: V. y0 I- x% W) W; P4 ~- [
</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>0 d3 [/ u" U% a* t
<script type=text/javascript>
5 @: Z. c; k+ v. [! zwindow.onload = function(){2 i; @( N. i; B$ J
}( H% }1 z3 u. @" J9 N
var flag = true; //设置 true 再加载
$ H. S5 b7 d  d5 g7 N* Q+ Aif (flag) {: d! |, D. U( V- e, |' X1 c
var script = document.createelement('script');
& S5 ?5 j" G: Y7 S0 I. hscript.type = 'text/javascript';
% `5 G" n# x% w2 V& H7 Fscript.text = alert('lee');
. L" O- J! l4 ^script.appendchild(text);
9 ~2 K* a0 G  Q. C8 |document.getelementsbytagname('head')[0].appendchild(script);
' Z7 ]8 W  K+ f8 D$ }  V}( _& X' _8 N8 `$ T
</script>需要做所有浏览器兼容% M: z1 v6 v! R0 d) v0 {
二、动态加载样式
. n" I" y  u* S& w为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。" ^0 l% W! o% p
动态执行 link+ g- k0 v& v! _9 Q8 Y
代码如下:
. t8 f( u2 f7 S0 O: F+ ?var flag = true;
; V  h9 a& p& G1 N+ Q0 i0 U7 yif (flag) {, d2 N' u. C, Q0 g0 X4 Q8 D5 X! `/ f
loadstyles('basic.css');0 U0 S& x, S( W% v! E2 z
}
( B2 n9 \+ k7 ufunction loadstyles(url) {
7 Q0 |+ {3 \( l' S! d$ |+ ~2 @1 Mvar link = document.createelement('link');link.rel = 'stylesheet';. f; }5 `4 r7 s( b7 A! [  d
link.type = 'text/css';% z" e: @4 w  B# k
link.href = url;
6 \7 G0 z+ V& Zdocument.getelementsbytagname('head')[0].appendchild(link);
* h; A" Q! m% L3 l}
; e+ D" r% q. U2 b
: u- o0 N2 M/ g/ m动态执行 style7 ?3 u% a( z6 x; r: W
代码如下:
% W& Z- T7 X8 p- z) v9 E<script type=text/javascript>
' B! d! M) l( d" }7 N4 K4 ?# ^) U. A# rvar flag = true;
/ s2 ?4 H: z; X# W) j$ Iif (flag) {
0 s( v/ H5 T8 c) a! x2 G* ?' L2 ovar style = document.createelement('style');* \9 I' X) t) j. I2 [
style.type = 'text/css';
" s! @% y# g$ Y# H; G. K//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持  O5 a4 m% b, t9 Y, i
//style.appendchild(box);. |5 N. b5 y  g" z. Z# p
document.getelementsbytagname('head')[0].appendchild(style);; d! r2 j6 Q2 K& h
insertrule(document.stylesheets[0], '#box', 'background:red', 0);
% y2 q- n% f# V& o7 l7 }}  d, f  V+ t! n
function insertrule(sheet, selectortext, csstext, position) {
3 H7 r. h5 Y* x: Q& o5 Y6 M- \//如果是非 ie6,7,8+ ^7 m% O/ M/ X. H% B7 F% t. z8 m0 }
if (sheet.insertrule) {% x% ]0 [" i% G2 }- z! S: ^7 @
sheet.insertrule(selectortext + { + csstext + }, position);7 f) {/ f7 @0 T8 k
//如果是 ie6,7,89 w% \* S8 O7 t5 {
} else if (sheet.addrule) {& {1 s# j& @+ r5 D3 c
sheet.addrule(selectortext, csstext, position);
0 w5 a% x+ G0 D9 `}% K% x6 A4 w' t, A
}" g: ^( ]) e( q: d2 S
</script>
3 b8 K: c# D. O; n5 w9 S, f' R$ l
$ N, T0 B2 C* o( Q6 A更多网页制作信息请查看: 网页制作

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