外界文件
分类:pc28.am

与动态脚本类似,所谓动态样式是指在页面刚加载时不存在的样式;动态样式是在页面加载完成后动态添加到页面中。 我们以下面这个典型的元素为例: 使用DOM代码可以很容易的动态创建出这个元素: 复制代码 代码如下: var link = document.createElement; link.rel = "stylesheet"; link.type = "text/css"; link.href = "style.css"; var head = document.getElementsByTagName[0]; head.appendChild; 以上代码在所有主流浏览器中都可以正常运行。需要注意的是,必须将元素添加到

复制代码 代码如下:

而不是元素,才能保证在所有浏览器中的行为一致。整个过程可以用一下函数来表示: 复制代码 代码如下: function loadStyles { var link = document.createElement; link.rel = "stylesheet"; link.type = "text/css"; link.href = url; var head = document.getElementsByTagName[0]; head.appendChild; } loadStyles 加载外部样式文件的过程是异步的,也就是加载样式与执行JavaScript代码的过程没有固定的次序。 另一种定义样式的方式是使用

// 动态加载外部js文件
var flag = true;
if( flag ){
loadScript( "js/index.js" );
};
function loadScript( url ){
var script = document.createElement( "script" );
script.type = "type/javascipt";
script.src = url;
document.getElementsByTagName( "head" )[0].appendChild( script );
};
// 动态加载js
if( flag ){
var script = document.createElement( "script" );
script.type = "text/javascript";
script.text = " ";
document.getElementsByTagName( "head" )[0].appendChild( script );
};
// 动态加载外部css样式
if( flag ){
loadCss( "css/base.css" );
};
function loadCss( url ){
var link = document.createElement( "link" );
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
document.getElementsByTagName( "head" )[0].appendChild( link );
};
// 动态加载css样式
if( flag ){
var style = document.createElement( "style" );
style.type = "text/css";
document.getElementsByTagName( "head" )[0].appendChild( style );
var sheet = document.styleSheets[0];
insertRules( sheet,"#gaga1","background:#f00",0 );
};
function insertRules( sheet,selectorTxt,cssTxt,position ){
if( sheet.insertRule ){ // 判断非IE浏览器
sheet.insertRule( selectorTxt "{" cssTxt "}" ,position );
}else if( sheet.addRule ){ //判断是否是IE浏览器
sheet.addRule( selectorTxt ,cssTxt ,position )
}
}

按照相同的逻辑,下列DOM代码应该是有效的: 复制代码 代码如下: var style = document.createElement; style.type = "text/css"; style.appendChild(document.createTextNode("body{background-color:red;}")); var head = document.getElementsByTagName[0]; head.appendChild; 以上代码可以在Firefox、Safrai、Chrome和Opera中运行,在IE中则会报错。IE将

代码如下: // 动态加载外部js文件 var flag = true; if( flag ){ loadScript( "js/index.js" ); }; function loadScript( url ){ var script = document.createElemen...

本文由pc28.am发布于pc28.am,转载请注明出处:外界文件

上一篇:Javascript绝句欣赏,简短有用的js代码 下一篇:没有了
猜你喜欢
热门排行
精彩图文