├── API Documents.htm
├── Bug & Todo.txt
├── Change Log.txt
├── Feature.txt
├── LICENSE
├── README.md
├── Sample.htm
├── css
├── animate-custom.css
├── jQuery.chatbox.css
└── style.css
└── js
├── jQuery.chatbox.js
└── jquery-1.10.2.js
/API Documents.htm:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
32 |
33 |
jQuery.chatbox 说明文档
34 |
35 |
特性
36 |
37 | 1.轻量级动画特效以及友好的界面
38 | 2.支持多窗口
39 | 3.完善的回调函数以实现自定义功能
40 | 4.多种调用方式
41 | 4.良好的封装以及扩展性
42 | 5.每个聊天窗对象实例以data属性的形式附加在聊天窗DOM对象上(如果你想获得某个特定插件的实例,可以直接从页面元素中获取:$('{boxId}').data('chatbox'))
43 |
44 |
45 |
配置项
46 |
配置项分为全局配置项和实例配置项
47 |
48 | 全局配置项:
49 | 参数 类型 默认值 说明
50 | ---------------------------------------------------------------------------------------------------------------
51 | id number null 当前用户的id,也就是发送者的id,必须是唯一值
52 | user string null 发送者的显示名称,可以是昵称用户名等,不要求唯一
53 | debug boolean false 是否打开调试功能
54 | idPrefix string 'chatbox_' 生成页面DOM元素的id值
55 |
56 | 实例配置项:
57 | 参数 类型 默认值 说明
58 | ---------------------------------------------------------------------------------------------------------------
59 | id number null 接收者的id,同时也会作为实例id,必须是唯一值
60 | user string null 接收者的显示名称,可以是昵称用户名等,不要求唯一
61 | title string 'Chat with '+{user} 聊天窗的标题
62 |
63 |
64 |
回调函数
65 |
66 | 回调函数也分为两种,一种是全局回调函数另一种是实例回调函数。
67 | 但是有点Javascript基础的开发者应该了解不管是哪种类型的回调函数我们都应该以传递函数引用的方式来调用,而不是对每个实例创建一个函数副本。
68 | 这样会造成内存浪费。全局回调函数不会在实例化每个聊天窗对象时重复创建副本分配给每个对象实例,而实例回调函数会。
69 | 因此在不需要为每个独立的聊天窗分配不同的回调功能时使用实例回调函数也应该以传递函数引用的方式来分配回调函数以节省内存空间。
70 |
71 |
72 | 回调函数参考:
73 | 函数名 参数 说明
74 | ---------------------------------------------------------------------------------------------------------------
75 | onChatboxCreate 创建聊天窗时触发
76 | onChatboxEnable 聊天窗被启用时触发
77 | onChatboxDisable 聊天窗被禁用时触发
78 | onMessageSend msg 发送消息时触发,唯一参数:消息内容msg
79 | onMessageReceive msg 收到消息时触发,唯一参数:消息内容msg
80 | onMessageSystem msg 收到系统消息时触发,唯一参数:消息内容msg
81 | onChatboxDestroy 销毁聊天窗时触发
82 |
83 | 优先级:实例回调函数优先级高于全局回调函数,也就是说实例配置项中的回调函数会覆盖全局配置项中同名的回调函数。
84 | this指针:this指针经由apply或者call方法已经指向调用该方法的实例。
85 |
86 |
87 |
API(属性和方法)
88 |
89 | 全局API:
90 | 属性/方法名 类型 参数 说明
91 | ---------------------------------------------------------------------------------------------------------------
92 | globalOptions 属性 无 保存所有聊天窗的全局配置项
93 | getQueue() 方法 无 返回当前聊天窗的实例队列
94 |
95 | 实例API:
96 | 属性/方法名 类型 参数 说明
97 | ---------------------------------------------------------------------------------------------------------------
98 | $elem 属性 无 保存着当前聊天窗实例的jQuery对象
99 | opts 属性 无 保存着当前聊天窗实例的初始化选项
100 | show() 方法 无 显示聊天窗
101 | hide() 方法 无 隐藏聊天窗
102 | enable() 方法 无 启用聊天窗
103 | disable() 方法 无 禁用聊天窗
104 | message() 方法 msg,type 设置接收到的消息到聊天窗,两个参数:消息内容msg、消息类型type
105 | blink() 方法 无 高亮标题栏闪烁提示
106 | destroy() 方法 无 无
107 |
108 |
109 |
调用方式
110 |
111 | 设定全局配置项:
112 | 直接定义配置对象globalOptions,未给定的配置项依旧会使用默认值并不会被该配置对象覆盖
113 | $.chatbox.globalOptions = {
114 | id:10000,
115 | user:'Jason',
116 | debug:true,
117 | onChatboxCreate:function(){
118 | //要执行的代码
119 | }
120 | }
121 |
122 | 或者以附加属性的方式
123 | $.chatbox.globalOptions.id = 10000;
124 | $.chatbox.globalOptions.user = 'Jason';
125 | $.chatbox.globalOptions.onChatboxCreate = function(){
126 | //要执行的代码
127 | };
128 |
129 | 初始化聊天窗:
130 | $.chatbox({
131 | id:11254,
132 | user:'Tony',
133 | title:'Chat with Tony',
134 | onChatboxCreate:function(){
135 | //要执行的代码
136 | }
137 | });
138 |
139 | 调用API方法:
140 | 第一种调用方式
141 | $.chatbox({instanceId}).message({message content});
142 |
143 | 第二种调用方式
144 | $({boxId}).data('chatbox').message({message content});
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/Bug & Todo.txt:
--------------------------------------------------------------------------------
1 | To Do Suggestion:
2 |
3 | *
--------------------------------------------------------------------------------
/Change Log.txt:
--------------------------------------------------------------------------------
1 | ChatBox 0.2.0-alpha
2 |
3 | 2014.06.06--------------------------------------------
4 | - 修正全局默认配置项被覆盖的BUG
5 |
6 | 2014.01.08--------------------------------------------
7 | - 用jQuery控制方式替换内嵌在HTML元素中的javascript:void(0)
8 | - 移除原型方法中的_setOptions方法,将此方法完全私有化
9 |
10 | 2013.12.30--------------------------------------------
11 | - 让整个标题栏支持最小化响应
12 | - 增加被选中的聊天窗的焦点阴影特效
13 | - 加入animate.css框架
14 | - 全局选项增加配置项:animate,用于设定一个默认的消息接收动画
15 | - 设置文本输入区域宽高默认值以及可延伸范围
16 |
17 | 2013.12.10--------------------------------------------
18 | - 增加API方法:blink,用于高亮聊天窗标题闪烁特效
19 | - 增加API方法:messageTo方法,用于消息发送逻辑处理
20 | - 分离init方法中的消息发送逻辑到messageTo方法中
21 | - 取消空消息回调函数onMessageEmpty
22 | - 为message方法增加系统消息输出支持
23 | - 增加onMessageSystem回调函数,在输出系统消息时触发
24 | - 修复关闭按钮重复绑定的动画事件
25 |
26 |
27 |
28 | ChatBox 0.0.1-alpha
29 |
30 | 2013.12.03--------------------------------------------
31 | - 增加一组API方法(enable & disable),用于聊天窗的启用和禁用
32 | - 增加一组API方法(show & hide),用于聊天窗的显示和隐藏
33 |
34 | 2013.12.02--------------------------------------------
35 | - 增加消息发送为空时的处理
36 | - 使用不同颜色区分聊天双方
37 | - 增加新消息标题栏闪烁
38 |
39 | 2013.12.01--------------------------------------------
40 | - 增加输入消息特殊字符过滤处理
41 | - 增加debug私有方法
42 | - 增加自定义回调函数扩展模块
43 |
44 |
45 |
46 | ChatBox 0.0.1-base 2013-10-11
47 |
48 | - 创建Base版
--------------------------------------------------------------------------------
/Feature.txt:
--------------------------------------------------------------------------------
1 |
2 | * 轻量级动画特效以及友好的界面
3 | * 支持多窗口
4 | * 完善的回调函数以实现自定义功能
5 | * 多种调用方式
6 | * 良好的封装以及扩展性
7 | * 每个聊天窗对象实例以data属性的形式附加在聊天窗DOM对象上
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 haozki
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 轻量级jQuery聊天窗插件
2 |
--------------------------------------------------------------------------------
/Sample.htm:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |