动态地添加Script和Style文本

本文介绍了一种在JavaScript中动态加载Script和Style的方法,并提供了针对不同浏览器的兼容性解决方案。此外,还展示了如何通过JavaScript来加载外部的CSS和JS文件。

动态地添加Script和Style文本

添加动态Script

var ss = document.createElement('script');
var src = 'alert("bah");';
if (window.all){ // IE
	ss.text = src;
} else { // Other Browser
	var tt = document.createTextNode(scr);
	ss.apendChild(tt);
}
var hh = document.getElementsByTagName('head')[0];
hh.appendChild(ss);

添加动态Style

var ss = document.createElement('style');
var def = 'body {color: red;}';
ss1.setAttribute("type", "text/css");
if (ss.styleSheet) {   // IE
	ss.styleSheet.cssText = def;
} else {                // Other Browser
	var tt = document.createTextNode(def);
	ss.appendChild(tt);
}
var hh = document.getElementsByTagName('head')[0];
hh.appendChild(ss1);
//如果要添加的不是文本,而是外部文件 
var css ;
function include_css ( css_file ) {
   
var html_doc = document . getElementsByTagName ( ' head ' )[ 0 ] ;
   
css = document . createElement ( ' link ' ) ;
   
css . setAttribute ( ' rel ' , ' stylesheet ' ) ;
   
css . setAttribute ( ' type ' , ' text/css ' ) ;
   
css . setAttribute ( ' href ' , css_file ) ;
   
html_doc . appendChild ( css ) ;

   
// alert state change
   
css . onreadystatechange = function () {
       
if ( css . readyState == ' complete ' ) {
           
alert ( ' CSS onreadystatechange fired ' ) ;
       
}
   
}
   
css . onload = function () {
       
alert ( ' CSS onload fired ' ) ;
   
}
   
return false ;
}

var js ;
function include_js ( file ) {
   
var html_doc = document . getElementsByTagName ( ' head ' )[ 0 ] ;
   
js = document . createElement ( ' script ' ) ;
   
js . setAttribute ( ' type ' , ' text/javascript ' ) ;
   
js . setAttribute ( ' src ' , file ) ;
   
html_doc . appendChild ( js ) ;

   
js . onreadystatechange = function () {
       
if ( js . readyState == ' complete ' ) {
           
alert ( ' JS onreadystate fired ' ) ;
       
}
   
}

   
js . onload = function () {
       
alert ( ' JS onload fired ' ) ;
   
}
   
return false ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值