str 是表示通过ajax返回的XMLRequest /*动态加载css style*/ function loadStyle(str) { var regExp_src=/[^]*/gi; var matchArray_src=str.match(regExp_src); alert(matchArray_src[0]); if(matchArray_src){ for(var i=0;i{alert("sss"); var str_temp = matchArray_src[i].toString(); var regExp_src_temp = /[^]*/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;}\" 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=/[^]*/gi; var matchArray_src=str.match(regExp_src); if(matchArray_src) { for(var i=0;i{ var str_temp = matchArray_src[i].toString(); var regExp_src_temp = /[^]*/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=/]*>([\s\S]*?)/gi; var matchArray_function=str.match(regExp_function); if(matchArray_function){ for(var i=0;ivar str_temp=matchArray_function[i].toString();//其实用正则表达式的向前向后查找的话是很方便的,但javascript却不支持,所以只能采取此下策 var regExp_function_temp=/]*>([\s\S]*?)/gi; var matchArray_temp=str_temp.match(regExp_function_temp); eval(RegExp.$1); } } }
09-13 11:13