动态载入 JavaScript/Csss 文件
传统加载外部JavaScript(*.js) 或者 Css(*.css)文件的方法是直接在<head>标签里面进行添加:
复制代码 代码如下:
<head>
<script type="text/javascript" src="myscript.js"></script>
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
这些文件用这种方式会同步加载到当前这个页面。
现在用动态的方式载入JavaScript/Css文件:
用 DOM createElement 方法创建一个 “script” 或者 ”link” 元素
设置相应的属性
使用 appendChild 方法, 把创建的元素插入到 head 标签的末尾
复制代码 代码如下:
function loadjscssfile(filename, filetype){
//如果文件类型为 .js ,则创建 script 标签,并设置相应属性
if (filetype=="js"){
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
}
//如果文件类型为 .css ,则创建 script 标签,并设置相应属性
else if (filetype=="css"){
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref);
}
//动态添加一个.js 文件
loadjscssfile("myscript.js", "js");
//像添加.js文件一样,动态添加一个.php文件
loadjscssfile("javascript.php", "js");
//动态一个.css文件
loadjscssfile("mystyle.css", "css");
为了防止多次载入同一个js/css文件, 添加以下判断(这只是粗略检测)
复制代码 代码如下:
//临时载入的文件名
var filesadded="";
function checkloadjscssfile(filename, filetype){
if (filesadded.indexOf("["+filename+"]")==-1){
loadjscssfile(filename, filetype);
//把 [filename] 存入 filesadded
filesadded+="["+filename+"]";
}
else{
alert("file already added!");
}
//第一次载入
checkloadjscssfile("myscript.js", "js");
//重复载入同一个文件, 失败
checkloadjscssfile("myscript.js", "js");
动态删除 JavaScript/Csss 文件
注意:ie6/7 下动态删除样式时有bug. 2种解决方案:1.样式表里不要有import的样式表 2.把link的type属性设置为空值, 然后再修改 href 的地, 或者直接设置href为空, 最后再把type值设置成”text/css” 强制让ie解释新的样式表。
取得相应的 DOM 元素
根据 文件名&文件类型 定位元素
用 DOM removeChild 删除一个 “script” 或者 ”link” 元素
复制代码 代码如下:
function removejscssfile(filename, filetype){
//判断文件类型
var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none";
//判断文件名
var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none";
var allsuspects=document.getElementsByTagName(targetelement);
//遍历元素, 并删除匹配的元素
for (var i=allsuspects.length; i>=0; i--){
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
allsuspects[i].parentNode.removeChild(allsuspects[i]);
}
}
removejscssfile("somescript.js", "js");
removejscssfile("somestyle.css", "css");
动态更新 JavaScript/Csss 文件
使用 createElement 创建 要更新的 JavaScript/Css 元素
查找要被替换的元素
用 replaceChild 替换元素
复制代码 代码如下:
function createjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
return fileref
}
function replacejscssfile(oldfilename, newfilename, filetype){
var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none";
var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none";
var allsuspects=document.getElementsByTagName(targetelement);
for (var i=allsuspects.length; i>=0; i--){
if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){
var newelement=createjscssfile(newfilename, filetype);
allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]);
}
}
}
//用 "newscript.js" 替换 "oldscript.js"
replacejscssfile("oldscript.js", "newscript.js", "js");
//用 "newscript.css" 替换 "oldscript.css"
replacejscssfile("oldstyle.css", "newscript.css","css");
相关推荐:
AI人工智能文章生成平台,释放创作无限可能
GPT版本全解:从基础到高级,如何选择最适合你的方案?,韩国ai人工智能
ChatGPT恢复正常使用时间,提升你的工作与生活效率,联想电脑AI0510
Chato1免费么?揭开这款AI聊天机器人的神秘面纱,交个朋友ai写作
ChatGPT怎么打不开了?解决办法,轻松恢复畅通无阻!,ai订酒店ai对话
SEO搜索关键词是什么意思?让你轻松网站流量的秘密!,ai颜色不对
为什么越来越多的人选择在知乎发布文章?这里面的机会你可能还没发现!,潍坊关键词排名提升
seo高手有什么条件,seo难上手吗 ,指南ai写作电力创新
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
SEO场景下的数字营销:如何通过精准优化提升网站流量,陕西融发建设集团网站
Chatget免费网站版无需登录,畅享无限对话体验!,工业 Ai 视觉检测
什么是seo伪原创,seo就业前景伪原创怎么写 ,头像ai画怎么弄
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
互联网时代的“搜索截流”新玩法:如何抓住流量红利,甘孜做优化网站软件
AI+写文章:开启智能创作新时代
SEO关键词推广软件官网-助力企业实现高效精准的网络营销,圈圈ai
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
SEO这样做,轻松引爆流量,助力企业成长,无极标准网站优化好处
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
AI搜索写文章是什么意思?人工智能赋能内容创作的未来,高德地图 ai
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
SEO薪资这些,你也能月入过万!,天水网站建设公司
什么是SEO优化方案,seo的优化方案 ,ai emorobot
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
优化文字,让表达更精准:提升写作效率的关键,个人网站建设外包
SEO领站-从零到一打造成功网站排名的秘密,轻淘客seo怎设置
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
“洗稿技巧如何让你的文章脱颖而出,轻松提升内容创作水平!”,台州椒江seo企业排名
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
文章AI扩写:突破创作瓶颈,提升写作效率的秘密武器
SEO伪创:提升网站排名的危险策略与如何避免,怎样介绍社交网站推广
AI做文章:引领智能创作的未来
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai
SEO是什么意思?揭秘SEO的真正含义与重要性,公司推广网站询问d火18星来
SEO经营:助力企业腾飞的秘密武器,靖边百度关键词排名
文字生成AI开启创作的新纪元
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
SEO爱站:提升网站排名,赢得流量的秘密武器,优化网站设计价格多少
ChatGPT发生故障,背后隐藏着哪些不为人知的原因与挑战?,硬件ai和软件ai
seo需要干什么,seo需要具备什么知识 ,ai梦境档案世岛大宅
AI一键生成文章免费:革新写作方式,提升创作效率
ChatGPT403:引领人工智能新时代,颠覆你的工作与生活方式,ai nak
为什么选择老域名注册,打造品牌价值的秘密武器,网站建设服务费用多少
SEO优化10种策略:提升网站排名的有效方法,帅气ai男头白底
ChatGPT怎么找梯子:突破网络限制,轻松访问AI助手的终极指南,鬼灭之刃人物AI还原
优化综合:引领高效发展的智慧之道,电影营销的推广方式
SEO占位:如何在竞争激烈的市场中占得先机?,梁平区省心全网营销推广
SEO韩国:为您开启国际市场的增长之门,seo文章标题有哪些
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
SEM做得好可以取代SEO吗?浅析两者的异同与未来趋势,王道ai