用正则表达式 动态创建/增加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 相关文章推荐
JS getStyle获取最终样式函数代码
Apr 01 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
Jul 22 Javascript
js 判断脚本加载完毕的代码
Jul 13 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
Aug 14 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
鼠标滚轴控制文本框值的JS代码
Nov 19 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
使用jquery动态加载js文件的方法
Dec 24 Javascript
jQuery zTree树插件动态加载实例代码
May 11 jQuery
手把手教你搭建ES6的开发运行环境
Jul 11 Javascript
推荐一个基于Node.js的表单验证库
Feb 15 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 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
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
什么是Python中的顺序表
2020/06/02 Python
python map比for循环快在哪
2020/09/21 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
促销活动总结范文
2014/04/30 职场文书
物业管理专业求职信
2014/06/11 职场文书
机械专业求职信范文
2014/07/15 职场文书
个人投资合作协议书
2014/10/12 职场文书
史上最牛的辞职信
2015/02/28 职场文书
运动会5000米加油稿
2015/07/21 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python