源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

用正则表达式 动态创建/增加css style script 兼容IE firefox

  • 时间:2021-12-06 04:38 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:用正则表达式 动态创建/增加css style script 兼容IE firefox
str 是表示通过ajax返回的XMLRequest /*动态加载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); } } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部