|
/*動態加載css style*/
function loadStyle(str)
{
var regExp_src=/<style.*src/s*=/s*["'][^"']*["'].*>[^<>]*<//style/s*>/gi;
var matchArray_src=str.match(regExp_src);
alert(matchArray_src[0]);
if(matchArray_src){
for(var i=0;i<matchArray_src.length;i++)
{alert("sss");
var str_temp = matchArray_src[i].toString();
var regExp_src_temp = /<style.*src/s*=/s*["']([^"']*)["'].*>[^<>]*<//style/s*>/gi;
str_temp.match(regExp_src_temp);/*這里重復使用匹配是為了,$1這個子表達式指向當前的值,否則會永遠是最后一個$1值*/
var head = document.getElementsByTagName('head')[0];
/*IE*/
if(document.all){
alert("IE");
if(document.getElementsByTagName('style')[0])
{
var sty=document.getElementsByTagName('style')[0].innerHTML;
alert(sty);
var sty = document.getElementsByTagName('style')[0].innerHTML;
//不知道怎么樣取得IE當前的style標簽,用getElementsByTagName不行,只能采此下策,創建一個新的,并加上以前的樣式
var styleSheet = document.createStyleSheet();
styleSheet.cssText=sty+RegExp.$1;
}
else
{
var styleSheet = document.createStyleSheet();
styleSheet.cssText="body{background:red;}/<br/>"
alert("finished");
}
}
/*FIREFOX*/
else{
var style;
if(document.getElementsByTagName('style')[0])
{
var sty=document.getElementsByTagName('style')[0].innerHTML;
alert(sty);
document.getElementsByTagName('style')[0].innerHTML=sty+RegExp.$1;
}
else
style=document.createElement('style');
style.type = 'text/css';
style.innerHTML=RegExp.$1;
head.appendChild(style);
alert(RegExp.$1);
}
}
}
}
/*動態加載具有src屬性的script*/
function loadScript_src(str){
var regExp_src=/<script.*src/s*=/s*["'][^"']*["'].*>[^<>]*<//script/s*>/gi;
var matchArray_src=str.match(regExp_src);
if(matchArray_src)
{
for(var i=0;i<matchArray_src.length;i++)
{
var str_temp = matchArray_src[i].toString();
var regExp_src_temp = /<script.*src/s*=/s*["']([^"']*)["'].*>[^<>]*<//script/s*>/gi;
str_temp.match(regExp_src_temp);
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/Javascript';
script.src = RegExp.$1;
script.defer="true";
head.appendChild(script);
alert(RegExp.$1);
}
}
}
/*動態加載innerHTML 中的Script*/
function loadScript(str){
var regExp_function=/<script[^>]*>([/s/S]*?)<//script[/s]*>/gi;
var matchArray_function=str.match(regExp_function);
if(matchArray_function){
for(var i=0;i<matchArray_function.length;i++){
var str_temp=matchArray_function[i].toString();//其實用正則表達式的向前向后查找的話是很方便的,但Javascript卻不支持,所以只能采取此下策
var regExp_function_temp=/<script[^>]*>([/s/S]*?)<//script[/s]*>/gi;
var matchArray_temp=str_temp.match(regExp_function_temp);
eval(RegExp.$1);
}
}
}
JavaScript技術:用正則表達式 動態創建/增加css style script 兼容IE firefox,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。