返回列表 发新帖

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

182.4k 7
swmozowtfl 发表于 2015-7-10 22:24:59|湖北 | 查看全部 阅读模式
点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下
( @- V9 N4 R3 l! Y2 h: E一、动态加载脚本8 s0 e4 |& B" N& P/ X, o
当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
. i  E( G# U1 \4 j$ U$ u比如:我们想在需要检测浏览器的时候,再引入检测文件。1 m% C' Z7 ~2 g' C* z. Q6 d; S. {2 f
代码如下:
* C# v$ \: ?: Q! h. _* g5 |<script type=text/javascript>
3 k0 D# z% U7 K  n* Lwindow.onload = function(){
2 X3 U6 ]# A9 s" ^. E- salert(typeof browserdetect);
* `) f; Y; |0 V8 t( k- w6 s* J}1 e5 N8 m5 ^" ?) @6 R
var flag = true; //设置 true 再加载
8 O4 y5 q! k) O  a+ _( Hif (flag) {
; a* }1 u2 ~9 ~! W8 ^/ jloadscript('browserdetect.js'); //设置加载的 js8 }' f# g" {. p) \$ ?* `& ?" j* I  Z6 U
}
0 M* L0 D5 e5 z1 F6 g) bfunction loadscript(url) {
2 g% c2 d/ J2 B$ {var script = document.createelement('script');7 D* A6 r+ g/ ?# f
script.type = 'text/javascript';8 ?* C$ F5 q2 _2 ~  x, _
script.src = url;
, \4 @' a# l9 t8 h; D5 W//document.head.appendchild(script); //document.head 表示<head>
5 z/ c) }; Y. k4 M' c3 w/ M0 [document.getelementsbytagname('head')[0].appendchild(script);1 a& G. `) v$ _9 ?- B* ~
}
2 _5 i( g) x2 S, J1 X& m</script>动态执行 js</p> <p>
: [8 _( h. p) n* T' ~' p/ }- ~<script type=text/javascript>
9 R# @; ~& @! Nwindow.onload = function(){
- H5 S# ]9 d: ~( t' n3 V}! N; X, L1 O; [. z, {
var flag = true; //设置 true 再加载
& W6 h* m* r5 n9 ^9 ^7 s. ^, jif (flag) {
7 d+ u7 h% ]* A  {! C" T1 D2 U+ pvar script = document.createelement('script');
% T8 [/ A+ o8 }2 Y- p' {7 `script.type = 'text/javascript';
' \! q, E# k4 q4 c+ P) ~4 @; evar text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错1 W% T  D9 z/ U9 L# i  C2 u6 B
script.appendchild(text);$ Z" v- {* s4 N/ ^
document.getelementsbytagname('head')[0].appendchild(script);
1 O+ \0 [+ p0 X# w}8 b. i/ }/ R" a# F& F& D% D' a2 T
</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>1 @" {$ V% g" k# J. V6 z, d, F, Z5 _
<script type=text/javascript>) B2 p9 q, G) [
window.onload = function(){
. V8 f( F, G0 q- p}
! o5 r* c0 e4 xvar flag = true; //设置 true 再加载
- U+ {% V+ j# T3 H# jif (flag) {# a; ?; d; W+ Y* d
var script = document.createelement('script');
' Z# S' [- G  g' C" Xscript.type = 'text/javascript';& s3 W% ?- B/ M% u0 b6 ~
script.text = alert('lee');- q2 q  g# e- F+ x/ o1 [! ?, u
script.appendchild(text);
+ l" z- f; j  I4 |document.getelementsbytagname('head')[0].appendchild(script);: L6 X0 ~$ G+ O. x3 X# y9 v
}4 N( F& _3 A! W) h
</script>需要做所有浏览器兼容0 V: A" o' R% d" v: V& W
二、动态加载样式. Z1 u" Q3 J! S4 I. Z! C" t! ^9 R" r
为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。
) X' O2 B+ g3 s5 x* q  a4 ]动态执行 link* A) ^8 q4 |4 e$ K
代码如下:
5 Z6 f; L+ o% \& B7 F7 C+ x  Svar flag = true;
1 ]% z  `$ G# I# G+ Kif (flag) {
  I" I; F# P2 m4 nloadstyles('basic.css');
- r# B3 t' e( ]9 o}
! _/ n7 i0 ?. K+ G. Ifunction loadstyles(url) {/ B3 D" z! `: u4 {6 l
var link = document.createelement('link');link.rel = 'stylesheet';9 Z+ e, k# z* K, R
link.type = 'text/css';
- _) B7 ^/ ?+ A1 elink.href = url;, m- z7 _; E  }& {/ w! {
document.getelementsbytagname('head')[0].appendchild(link);
- s! I$ I' n, |( f( u- M' e/ I" z, R}
. I  Z% L  Y! T6 ~9 `
( a! J# r; B( z4 P6 e8 d% Z& ^, i动态执行 style
4 A- S: Z  r/ s  B8 Y3 o代码如下:2 P% D! R( E2 J* c/ Y  A
<script type=text/javascript>1 S4 c: h% P4 C9 u
var flag = true;) f7 J( G/ ~* @
if (flag) {
% ^8 B1 s4 Q  [) Q# Cvar style = document.createelement('style');
0 X9 Y0 _0 O# v& H5 _! `style.type = 'text/css';
3 S1 G% e: l' i' W' h8 w8 y//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持, X" P7 {9 ^. k/ A0 `4 e
//style.appendchild(box);
; ]6 |* h0 k3 O7 \' Jdocument.getelementsbytagname('head')[0].appendchild(style);
/ L, f7 O! C2 T: ?insertrule(document.stylesheets[0], '#box', 'background:red', 0);/ u9 t) X! @5 d
}1 a% S  V7 n/ o! B- z* F
function insertrule(sheet, selectortext, csstext, position) {1 [8 j4 j7 C% P
//如果是非 ie6,7,88 \" n: B$ W% ]) `; J9 ~7 f, Z
if (sheet.insertrule) {
( _; A6 |1 n, e* o* H5 t/ p- Fsheet.insertrule(selectortext + { + csstext + }, position);
8 b' Z0 h9 G3 q5 k( n//如果是 ie6,7,8" u' X& v5 X, a! ~+ g
} else if (sheet.addrule) {; a/ e0 R/ [0 z; m
sheet.addrule(selectortext, csstext, position);" J/ J8 w% L% k" b9 u! i
}. v* o) y" `  n9 J- c
}
5 _0 N3 b* J0 a9 h</script>& q6 |3 k+ x: Q4 t0 o
7 A" B1 b' M, J) R5 o1 v
更多网页制作信息请查看: 网页制作

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