用正则表达式 动态创建/增加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 获取网页参数系统
Jul 19 Javascript
jQuery实现的类flash菜单效果代码
May 17 Javascript
Jquery插件写法笔记整理
Sep 06 Javascript
js数组去重的常用方法总结
Jan 24 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
jQuery 实现评论等级好评差评特效
May 06 Javascript
JavaScript必知必会(六) delete in instanceof
Jun 08 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
使用express搭建一个简单的查询服务器的方法
Feb 09 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 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实例分享之html转为rtf格式
2014/06/02 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
php实现三级级联下拉框
2016/04/17 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
在Python中使用next()方法操作文件的教程
2015/05/24 Python
详解Django中的权限和组以及消息
2015/07/23 Python
python中函数默认值使用注意点详解
2016/06/01 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
Pandas的数据过滤实现
2021/01/15 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
小学生新学期寄语
2014/01/19 职场文书
建设工地安全标语
2014/06/07 职场文书
横空出世观后感
2015/06/09 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python