返回列表 发新帖

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

182.2k 7
swmozowtfl 发表于 2015-7-10 22:24:59|湖北 | 查看全部 阅读模式
点评:这篇文章主要介绍了html动态加载css样式和js脚本示例,需要的朋友可以参考下1 o, p& k+ X- }% M0 O1 Z
一、动态加载脚本
/ f# X) Z) `( }; t) s2 X当网站需求变大,脚本的需求也逐步变大。我们就不得不引入太多的 js 脚本而降低了整站的性能,所以就出现了动态脚本的概念,在适时的时候加载相应的脚本。
6 @4 j( q# C( N. S9 g# T8 C比如:我们想在需要检测浏览器的时候,再引入检测文件。
# d) M2 I" b  V/ ]7 J  Z代码如下:- {1 |4 [1 R; b9 m
<script type=text/javascript>
& q& n. z9 q) Xwindow.onload = function(){& r+ {! p/ u& z3 U
alert(typeof browserdetect);
5 p- J) q2 d( Y& b& V; R4 m8 C}1 J6 U3 d9 s: j9 J9 ?
var flag = true; //设置 true 再加载" e; T, f8 I3 ^# D6 f& I
if (flag) {
+ H6 G: Y) x5 t5 M* e4 R4 }loadscript('browserdetect.js'); //设置加载的 js
* _1 d5 y$ x' N' O% a}4 z2 }# R+ @2 j% {8 k
function loadscript(url) {+ g$ R2 o5 }8 y5 P2 M% X8 l
var script = document.createelement('script');
! A* T  W* ^7 x9 e- ]3 L2 Qscript.type = 'text/javascript';
7 p5 [! l2 x4 i5 f8 D( lscript.src = url;% K' K& L* ?/ W0 M8 Y( [
//document.head.appendchild(script); //document.head 表示<head>
, P+ d) ?; l% |& R9 i2 mdocument.getelementsbytagname('head')[0].appendchild(script);
) H6 }2 t# W9 z. L}
5 d4 N9 ^# T; p9 r" B3 e</script>动态执行 js</p> <p>
; h6 J* K' M' Z3 m8 T<script type=text/javascript>
4 Z! {' O6 H5 {' Awindow.onload = function(){
1 _2 z( [4 N' [+ I3 K}+ X& E6 Z- r4 R9 Q9 }
var flag = true; //设置 true 再加载
8 R0 X+ f6 ], W; {if (flag) {
+ u- L3 J3 n% l0 cvar script = document.createelement('script');
3 L. V9 e4 h. H: \/ x% `script.type = 'text/javascript';% S8 S) O  ~3 X# D
var text = document.createtextnode(alert('lee')); //ie6,7,8 浏览器报错
0 X, s" ]7 S5 [script.appendchild(text);; ^% o. @. }4 ^# U7 G
document.getelementsbytagname('head')[0].appendchild(script);  C7 k% r9 [2 D! |0 L1 s0 F! A$ h
}1 X4 [% _) T0 ^$ _2 M
</script>ie 6,7,8浏览器认为 script 是特殊元素,不能在访问子节点。为了兼容,可以使用 text属性来代替。</p> <p>4 O4 T5 w+ i# q8 R" p1 V0 S
<script type=text/javascript>1 U" n& h9 V3 {3 |, g7 i# M5 _" c
window.onload = function(){
; E$ d/ A# h. p+ X}" Z: i' m2 U+ N- q6 C
var flag = true; //设置 true 再加载! X. k4 L+ m) z& y" |
if (flag) {2 e) f+ N1 x! t
var script = document.createelement('script');
* E- B' M0 x# c  Y3 g( }: ]7 kscript.type = 'text/javascript';
; c8 n  x& s; X# c, ~7 \8 G' c2 J% u, \script.text = alert('lee');" k' T7 w3 N" J
script.appendchild(text);
7 Q6 ~* T  ^* F% Hdocument.getelementsbytagname('head')[0].appendchild(script);
0 N# Z: h/ x9 T+ N}! f: S' O6 j- J3 {1 b, [
</script>需要做所有浏览器兼容
# _# P/ O: k  `' [0 X1 ^二、动态加载样式
3 r5 P; F4 D3 S" W$ I为了动态的加载样式表,比如切换网站皮肤。样式表有两种方式进行加载,一种是<link>标签,一种是<style>标签。
, ^  T# c  a/ R动态执行 link* V! N- s4 A5 g
代码如下:
  C% m9 e: y+ p- V  n) c+ ^  y5 Fvar flag = true;3 D7 g/ S6 t8 }% j
if (flag) {1 J, a' m6 P% i" ?, O
loadstyles('basic.css');
' U0 k+ G$ V4 W3 N}
; C0 U. e+ d$ G: p. efunction loadstyles(url) {
0 Z, X4 f" }  t9 X% evar link = document.createelement('link');link.rel = 'stylesheet';) o/ A) I9 p/ \7 z
link.type = 'text/css';
: Y! C. ^- |7 r5 N# `- Plink.href = url;
7 m2 y+ \3 ?6 idocument.getelementsbytagname('head')[0].appendchild(link);
4 T* M/ H2 Y% a0 _}1 H/ U) r7 {$ D1 L1 \2 B. e# M" f

) `( g2 |2 C& K5 l6 F* Q动态执行 style
6 L8 m: Q) J9 |4 V* M$ ?% I代码如下:! f: g9 ], P4 u1 m" G8 X* l
<script type=text/javascript>
2 s6 F7 \9 F4 H  d9 `, @" r% H2 vvar flag = true;. B4 K1 U6 a- t' x8 w
if (flag) {
# h# \1 c: J  z# o  zvar style = document.createelement('style');. S. W# S3 q' t# g5 N) H
style.type = 'text/css';7 R+ e. e* l2 L  ^+ m
//var box= document.createtextnode('#box{background:red}');// ie6,7,8 不支持
7 Y7 p6 ?! ^& N  A& G//style.appendchild(box);5 @/ M; L" x' a  o
document.getelementsbytagname('head')[0].appendchild(style);
( ^+ W9 |; B# u3 f' D0 Uinsertrule(document.stylesheets[0], '#box', 'background:red', 0);3 L5 n5 u/ |4 {9 L4 l
}% q5 z0 v$ P1 m9 `1 q% Q/ I; g# ?
function insertrule(sheet, selectortext, csstext, position) {: B: u" e2 n2 d' p8 P
//如果是非 ie6,7,87 e/ q! @. e7 B, }
if (sheet.insertrule) {. e* C2 {& P7 e" P: I( n
sheet.insertrule(selectortext + { + csstext + }, position);( o, f4 q- ^2 X5 }; n+ p6 R5 q
//如果是 ie6,7,8
$ [: a; ?. k) r# b) q5 u6 ~} else if (sheet.addrule) {
5 v9 k& v" ^" z/ B' }! [9 d/ `sheet.addrule(selectortext, csstext, position);% e9 l- [/ I2 D6 A+ ^  h
}
1 i/ e5 s6 n- f}& ^; g6 Y6 c& K& S
</script>8 B& U2 ~! y5 f" [/ z

7 x; M* n% Z! d8 L8 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客服 返回顶部
快速回复 返回顶部 返回列表