返回列表 发新帖

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

182.4k 7
swmozowtfl 发表于 2015-7-10 22:24:59|湖北 | 查看全部 阅读模式
点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下
% v: P, L( H3 j1 U5 n一、动态加载脚本! i! A. v& j: P3 o# d* q+ I7 |
当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
3 r0 K" L( B( B1 {- j- e# T比如:我们想在需要检测浏览器的时候,再引入检测文件。& n- a9 q8 _4 u6 A8 K4 r$ C1 I3 _
代码如下:5 [8 Y; e1 j. S0 ^  F4 Y
<script type=text/javascript>8 d% f2 ^6 J' j5 s6 v( Z& C
window.onload = function(){
4 s* A* n& P7 p4 u$ w1 Jalert(typeof browserdetect);
6 s% u1 Z1 V3 I}8 K- N. J6 x; M" l& `6 K2 n
var flag = true; //设置 true 再加载3 p3 I4 _+ c% @1 w! }$ b  O  H
if (flag) {
0 X1 M9 I9 R% E3 ]6 c3 m: v0 Zloadscript('browserdetect.js'); //设置加载的 js
3 I, p/ e; n2 m2 F/ t0 \$ S) d}
+ ^2 k# \+ b5 x3 ufunction loadscript(url) {
+ s. S8 W' {4 m9 yvar script = document.createelement('script');  @1 N% |) U4 Y
script.type = 'text/javascript';
7 Q8 O, m# M# O, D& m: Z* gscript.src = url;
8 u5 E) V4 T1 ]//document.head.appendchild(script); //document.head 表示<head>
0 _3 K- t  Y7 sdocument.getelementsbytagname('head')[0].appendchild(script);" L* _) F  `. E, s, k# V  A& s
}
) G1 [7 ~& ], \</script>动态执行 js</p> <p>
# w" K) _: Z+ |0 @2 N- a<script type=text/javascript>* r- s; p9 I( I" b; u
window.onload = function(){# T$ |6 ]+ P5 ?, u, u
}
0 p2 b( ~8 r: `( E- |/ i' M+ I0 Yvar flag = true; //设置 true 再加载
# ^) R5 i0 z( z$ G; S' Q# pif (flag) {
1 S5 b2 y  _2 }$ l( {7 W6 D' K, @( d* jvar script = document.createelement('script');, q, r. F* P' u8 y9 V
script.type = 'text/javascript';
; W" U- Z0 f' k, t/ [- Pvar text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错
0 N* Y. m) E# [8 k  rscript.appendchild(text);
3 o* w1 N; h9 O" I4 @document.getelementsbytagname('head')[0].appendchild(script);5 |4 J- ?5 j5 ~; x; ~. J0 X% S
}
! ?* S. R# e- k# z& q0 g</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>3 ~  \) B5 e! [8 G2 k
<script type=text/javascript>
: r7 L! ?; B5 B) w! Mwindow.onload = function(){8 I, s8 j* _0 S3 W2 b, n
}+ w1 }- X0 D: t+ [  ]
var flag = true; //设置 true 再加载
* B2 g4 P* X+ B# Nif (flag) {
: K/ y2 S" k7 c7 B# Nvar script = document.createelement('script');3 W" ^6 T0 e% e9 ~, ~6 A
script.type = 'text/javascript';
' F, t' q2 w; J% R3 yscript.text = alert('lee');, D4 |! s' w/ C* h! X1 \4 p5 J
script.appendchild(text);
. @) F; P0 A1 Z9 B+ m2 z9 }3 u: m' gdocument.getelementsbytagname('head')[0].appendchild(script);
* B# F5 }! U# c5 F# J! k}
) V/ T3 g4 ^* y4 d* V, x+ {</script>需要做所有浏览器兼容$ K# \  H' b9 H. h! c
二、动态加载样式! l' a9 G6 a3 n4 J, D' o
为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。
. ]) y/ J! N2 ^3 [动态执行 link% ~) |3 G. X2 V- _# o" `
代码如下:" G, ?& n/ y- Q5 X# @
var flag = true;
8 `0 l6 Q( c0 s3 |3 _if (flag) {- H8 P' H1 ^( {" Y# ^% @0 l' I
loadstyles('basic.css');% y, @$ k7 i4 j) U, B( B
}" D6 a1 v. h" Q+ }/ R4 p, I
function loadstyles(url) {$ f( Q- z0 ~2 O1 u6 B2 d* [
var link = document.createelement('link');link.rel = 'stylesheet';8 s+ Z% X- w6 c5 S0 `
link.type = 'text/css';# l6 T- d+ ~7 J
link.href = url;
/ o- i2 s, E  ]0 S- Q, H" X/ adocument.getelementsbytagname('head')[0].appendchild(link);
6 N" ^, t0 K0 E! I( l}
3 w* E" M% t' d- _) f# f
* ^2 R9 L& d; K动态执行 style
! h0 Z$ B( B# h: ]6 Z/ [代码如下:
: ]9 C6 d4 r% [* x% Z3 V/ n! U<script type=text/javascript>& m8 E6 [4 ~0 I9 I2 ^9 B
var flag = true;
! `5 l6 }) Q, C; y5 l  `* tif (flag) {' J6 f/ Y, h9 W: S; b7 G
var style = document.createelement('style');
, Y0 e9 y; I2 j: istyle.type = 'text/css';7 g# u' ]* h9 @& }. @' Z7 L- ~
//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持! h0 H: }9 Q" B: T5 _1 x
//style.appendchild(box);! O4 C. W# K5 E4 W; q: _9 M
document.getelementsbytagname('head')[0].appendchild(style);$ N& l) a* @- |
insertrule(document.stylesheets[0], '#box', 'background:red', 0);) R, c  V) d9 {+ `
}
" S: t& Q, S5 Z  h9 Lfunction insertrule(sheet, selectortext, csstext, position) {  j6 t8 l5 b, z3 l: c" g. ]% n
//如果是非 ie6,7,8
0 n0 \7 W! j( F  y1 O1 t& S6 k1 a& vif (sheet.insertrule) {
& D; A  u6 e' V% o; Osheet.insertrule(selectortext + { + csstext + }, position);7 y  w4 {: _  {  z
//如果是 ie6,7,8
3 s, f( Q" _/ Y) Z+ Z6 P  _} else if (sheet.addrule) {
" I+ ~3 o5 \, M' ssheet.addrule(selectortext, csstext, position);2 P3 d3 J) d9 T
}4 @8 G3 i# ~* p! k8 V
}- I- _% u! M& j8 B1 U
</script>
3 q$ l3 K# R0 M0 m7 j( }
( \3 k5 U3 q% Y- `! E9 ^! e' b更多网页制作信息请查看: 网页制作

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