今天星星问了我一下模板消息插件~我没用过所以没回答上什么东西~
下来想了一下能否用模板和少量的JS来实现这个功能~
趁下班花了十几分钟做了一个小例子,验证了一下路线是可行的
先上代码
- (function () {
- //判断弹窗是否已存在,未关闭前不打开新弹窗
- var open = false;
- //事件初始化判断
- var init = false;
- //发送者
- var sender = "";
- //时间
- var time = "";
- //检测强制休眠
- var sleep = false;
- //代理用来收发信息
- var agent = null;
- var TransAgent = function(cpt,parr){
- var url = FR.servletURL+'?reportlet='+cpt;
- for( var i=0; i<parr; i+=2 ){
- url += '&'+parr[i]+'='+encodeURIComponent(parr[i+1]);
- }
- url+='&op=write&_t_='+new Date().getTime();
- if(!agent){
- agent = $('<iframe/>').hide().appendTo($('body'));
- }
- agent.attr('src',url);
- };
- //定时检测信息
- setInterval(function(){
- var row = FR.remoteEvaluate('=ROWCOUNT("newMsgList")');
- if(row>0 && !open && !sleep){
- open = true;
- sender = FR.remoteEvaluate('=VALUE("newMsgList",1,1)');
- time = FR.remoteEvaluate('=VALUE("newMsgList",4,1)');
- var msg = FR.remoteEvaluate('=VALUE("newMsgList",3,1)');
- FR.showIframeDialog({title:'【新消息】 '+sender+' [ '+time+' ] 说: ', iframe:$('<div>'+msg+'</div>'),height:150,width:400});
- }
- if(!init && $('.fr-core-panel-tool-close').length>0){
- init = true;
- $('.fr-core-panel-tool-close').click(function(e){
- sleep = true;
- open = false;
- TransAgent('read.cpt',['S',sender,'T',time]);
- setTimeout(function(){sleep = false;},2000);
- });
- }
- },1000);
- //发送信息
- FR.sendMsg = function(user,msg){
- TransAgent('send.cpt',['D',user,'C',msg]);
- };
- })();
复制代码 这个代码保存成JS文件,添加到服务器配置里面
然后数据库建一张表
然后做两个空模板,分别编辑加载结束事件做填报
然后就可以测试了
下面是用到的文件
read.cpt
(2.29 KB, 下载次数: 25)
send.cpt
(2.7 KB, 下载次数: 24)
msg.js
(1.45 KB, 下载次数: 21)
做得比较简单,仅仅验证了可行性~很多细节都没去考虑~有兴趣的同志可以参考一下~
编辑于 2017-6-12 14:57
|