在css加载完毕后自动判断页面是否加入css或js文件


Posted in Javascript onSeptember 10, 2014

最近在写项目的framework,写个JQueryMessageBox的类,以使用jquery ui中的dialog()来显示消息框,为了使方法方便调用,便加入了自动判断页面是否加入了ui.js和ui.css,代码如下:

//如果没有包含ui.js,则引用 
if ($('script[src$=""jquery-ui-1.8.11.custom.min.js""]').length == 0) {{ 
$(""<script src='/js/jquery-ui-1.8.11.custom.min.js' type='text/javascript' />"").appendTo('head'); 
}} 
//如果没有加载css,则加载 
if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) {{ 
$('<link href=""/css/jquery-ui-1.8.14.custom.css"" rel=""stylesheet"" type=""text/css"" />').appendTo('head'); 

//dialog() script 
}}

但CSS代码不会立即加载下来,于是在显示dialog的时候则不会有样式(在IE9下可以,因为在IE9下CSS即使后下载下来,也会重新绘制页面元素,而IE8则不会).解决此问题的方法,可以使用ajax,当css加载完毕后,再显示dialog,这样就可以带着样式显示出来了,代码如下:

if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) { 
$.ajax({ 
url: '/css/jquery-ui-1.8.14.custom.css', 
success: function(data) { 
//创建一个style元素,并追加到head中 
//替换其中images的路径 
$('<style type="text/css">' + data.replace(/url\(images/g, 'url(/css/images') + '</style>').appendTo('head'); 
//dialog() script; 
} 
}); 
} 
else { 
//dialog() script; 
}
Javascript 相关文章推荐
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 Javascript
JS分页控件 可用于无刷新分页
Jul 23 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
Jul 21 Javascript
Vue.js创建Calendar日历效果
Nov 03 Javascript
3分钟掌握常用的JS操作JSON方法总结
Apr 25 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
js数组去重的方法总结
Jan 18 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
在Koa.js中实现文件上传的接口功能
Oct 08 Javascript
vue中touch和click共存的解决方式
Jul 28 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
Sep 10 #Javascript
jQuery通过点击行来删除HTML表格行的实现示例
Sep 10 #Javascript
javascipt:filter过滤介绍及使用
Sep 10 #Javascript
用javascript将数据导入Excel示例代码
Sep 10 #Javascript
js使用for循环及if语句判断多个一样的name
Sep 09 #Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 #Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 #Javascript
You might like
用PHP读注册表
2006/10/09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
详解JavaScript树结构
2017/01/09 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Python 切分数组实例解析
2019/11/07 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
学年自我鉴定范文
2013/10/01 职场文书
运动会入场解说词300字
2014/01/25 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
2016春节慰问信范文
2015/03/25 职场文书
python绘制箱型图
2021/04/27 Python
Golang表示枚举类型的详细讲解
2021/09/04 Golang
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记