简介

fdp.js文件是一个js组件库,封装了常用的js工具,如alert、confirm、msg、cookie操作等等。

并使用fdp全名空间。

API文档

函数 说明 特点
fdp.alert()

通用alert提示窗口

按ESC关闭 提示窗口

按回车是确认

鼠标单击关闭提示窗口

有遮罩蒙层

fdp.confirm()

通用confirm确认框
一般用于删除数据时的确认提示
调用示例:
fdp.confirm('确定要删除么?',' http://www.abc.com/user/del.do ');
fdp.confirm('确定要删除么?',function(){});
@author zhaolei
@version 2016-12-25

按ESC关闭提示窗口

按回车是确认

有遮罩蒙层

如果1.5秒内未完成操作,则给出请等待的提示


fdp.msg()

通用 msg 提示框

按ESC关闭提示窗口

按回车关闭提示窗口

鼠标单击关闭提示窗口

无遮罩蒙层

fdp.include()

引入 js css 文件

fdp.getQueryString()

获取URL地址中的参数

let type = fdp.getQueryString("type", "/sys/office/treeData.do?type=3");
fdp.getDictLabel()

获取字典标签

fdp.windowOpen()

打开一个窗体

fdp.abbr()

abbr( )介绍

缩略字符串(区别汉字和英文)
截取字符串,若超过最大宽度,在文本后追回“...”
如果字符串中含有html标签,会被替掉
一个字母算1个长度,一个汉字算2个长度

应用场景:
在网页上有一个文章列表,固定宽度是200px,里面要显示很多行的文章标题。文章标题有中文的、有英文的、有中英混合的。
如果文章的标题超长就要被截掉后面的部分,不能超出列表的200px最大宽度。
当文章的标题同时有中英文时,保留多少个字符合适呢?如何在固定的宽度内保留更多的字符呢?
例1:"北京发生严重的雾霾"有9个字符,但宽度是200px。
例2:"Beijing is Smog"有15个字符,但宽度是200px。
为在固定的宽度内保留更多的字符,要这样计算:一个字母占1个长度,一个汉字占2个长度。

@param str 目标字符串
@param length 保留长度(一个文字要按2个长度算)
@return 返回被缩略后的字符串

abbr2( ) 介绍

* 缩略字符串(区别汉字和英文)
* 截取字符串,若超过最大宽度,在文本后追回“...”
* 如果字符串中含有html标签,保留html标签并可自动补全被截断的html标签
* 一个字母算1个长度,一个汉字算2个长度

Java版本:
StringUtils.abbr(java.lang.String, int)
StringUtils.abbr2(java.lang.String, int)

jsp函数版本:
${fns:abbr(str,length)}
${fns:abbr2(str,length)}

js版本
fdp.abbr()

fdp.cookie()

操作cookie的通用函数

示例0:写入一个临时cookie,关闭浏览器后失效 fdp.cookie('键', '值');

示例1:写入一个持久cookie,fdp.cookie(key, '0', {path:'/',expires:7}); //7表示有效期7天

示例2:删除cookie fdp.cookie(key, '0', {path:'/',expires: - 1}); //清空,把时间设置为负数,会让cookie立即过期

(注意path要相同才能删除成功,如果cookie存储的path是/,删除时则要指定path为/)

示例3:写入一个cookie,7天后失效 fdp.cookie('键', '值', {path:'/',expires:7});//7表示有效期7天

示例4:写入一个cookie,指定域名、路径、有效期 fdp.cookie('键', '值', {domain:" www.test.com ",path:'/',expires:7});

options.domain:指定域名

options.path:指定路径,一般可指定/,若为null则写入当前页面的URL中取出当前路径

options.expires:有效期,单位天

options.secure:安全,true表示,该cookie只会在 https 下发送,而不会再 http 下发送

示例5:取cookie, fdp.cookie('键') ,不能指定path路径,一个key存储在多个路径下,先返回目录层级长的。

fdp.defaultImage()

显示默认图
当在页面中显示图片,因图片不存在发生错误时,显示一张默认图

使用示例
<img src="${ctxStatic}/sicheng-front/images/face.png" onerror="fdp.defaultImage('${ctxStatic}/pic/default.jpg');">

调用示例:fdp.defaultImage("/pic/default.jpg")

当在页面中显示图片,因图片不存出错时会触发onerror事件,

会执行fdp.defaultImage("/pic/default.jpg")显示默认图,
但default.jpg默认图也不存在,会再次触发onerror事件,这样就发生了死循环
本方法可以解决这个问题。

fdp.getEvent()

获得事件对象

请使用来方法 获得事件对象event

应该使用以下方法替代
$("button[name='deleteRow']").click(function (event) {
console.log(event.currentTarget);
});

<button type="button" onclick="abc(123)"/> 在abc函数内可获得事件对象
<a href="javascript:abc(123);" /> 在abc函数内无法获得事件对象

fdp. getEventObj()

获得事件源

获取触发这个事件的源头元素,可能是一个button对象。

应该使用以下方法替代
$("button[name='deleteRow']").click(function (event) {
console.log(event.currentTarget);
});
同上