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


Posted in Javascript onMarch 10, 2009

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);
}
}
}

Javascript 相关文章推荐
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
ASP 过滤数组重复数据函数(加强版)
May 31 Javascript
js跳转页面方法总结
Jan 29 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
仿iframe效果Aajx文件上传实例
Nov 18 Javascript
原生js实现无缝轮播图效果
Jan 11 Javascript
BootStrap的两种模态框方式
May 10 Javascript
JQuery EasyUI的一些常用组件
Jul 12 jQuery
解决在vue项目中webpack打包后字体不生效的问题
Sep 01 Javascript
Vue实例的对象参数options的几个常用选项详解
Nov 08 Javascript
基于javascript实现贪吃蛇小游戏
Nov 25 Javascript
Iframe thickbox2.0使用的方法
Mar 05 #Javascript
js 颜色选择器(兼容firefox)
Mar 05 #Javascript
小型js框架veryide.librar源代码
Mar 05 #Javascript
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 #Javascript
javascript radio 联动效果
Mar 04 #Javascript
js 页面执行时间计算代码
Mar 04 #Javascript
[推荐]javascript 面向对象技术基础教程
Mar 03 #Javascript
You might like
图形数字验证代码
2006/10/09 PHP
php.ini中文版
2006/10/09 PHP
php生成略缩图代码
2012/07/16 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
图片自动缩小 点击放大
2008/07/07 Javascript
jQuery 使用手册(三)
2009/09/23 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
jQuery Position方法使用和兼容性
2017/08/23 jQuery
js实现简单选项卡功能
2020/03/23 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
Python命名空间详解
2014/08/18 Python
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
详解Python Socket网络编程
2016/01/05 Python
Python快速排序算法实例分析
2017/11/29 Python
python实现k-means聚类算法
2018/02/23 Python
python如何制作缩略图
2019/04/30 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
医院节能减排方案
2014/06/13 职场文书
师德师风剖析材料
2014/09/30 职场文书
css3带你实现3D转换效果
2022/02/24 HTML / CSS