用正则表达式 动态创建/增加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 相关文章推荐
根据地区不同显示时间的javascript代码
Aug 13 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
Nov 21 Javascript
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
Bootstrap 附加导航(Affix)插件实例详解
Jun 01 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
Javascript中从学习bind到实现bind的过程
Jan 05 Javascript
Angular CLI在Angular项目中如何使用scss详解
Apr 10 Javascript
javascript对HTML字符转义与反转义
Dec 13 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
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游戏编程25个脚本代码
2011/02/08 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
js中replace的用法总结
2013/12/27 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
简单介绍Python中的readline()方法的使用
2015/05/24 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
对Django中内置的User模型实例详解
2019/08/16 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
毕业生求职简历的自我评价
2013/10/23 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
班级读书活动总结
2014/06/30 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python