【分享】Web的桌面提醒(Popup,类似msn,outlook等的信息提示)

singlepine 2005-09-08 04:32:39
昨晚加班,无意找到一些类似msn,outlook等的信息提示的资料,今天把它整理了一下,然后自己测试通过,先分享出来,如果大伙在发送邮件或需要弹出信息对话框时,可以做个参考,也希望这段代码能越来越好,大家多提意见。
1.建立PopupManager.js,代码如下
// 队列
function Queue()
{
var items = new Array();
var first = 0;
var count = 0;
// 队列大小
this.Count = function()
{
return count;
} ;
// 取队列头/尾
this.Peek = function(last)
{
var result = null;
if (count > 0)
{
if (null != last && true == last)
result = items[first + (count - 1)];
else
result = items[first];
}
return result;
};
// 入列
this.Enqueue = function(x)
{
items[first + count] = x;
count++;
return x;
};

// 出列
this.Dequeue = function()
{
var result = null;
if (count > 0)
{
result = items[first];
delete items[first];
first++;
count--;
}
return result;
};
}
var newlineRegExp = new RegExp("(\r\n|\n|\r)", "g");
function NewlineReplace(str)
{
result = "";
if (str != null)
result = str.replace(newlineRegExp, "<br>");
return result;
}

var entityList = new Array();
entityList["<"] = "<";
entityList["\uff1c"] = "<";
entityList[">"] = ">";
entityList["\uff1e"] = ">";
entityList["&"] = "&";
entityList["\uff06"] = "&";
entityList["\""] = """;
entityList["\uff02"] = """;

function EntityReplace(str)
{
var result = "";
if (str != null)
{
var len = str.length;
var i = 0;
while (i < len)
{
var j = i;
var e = entityList[str.charAt(j)];
while (j < len && null == e)
{
j++;
e = entityList[str.charAt(j)];
}
result += str.substr(i, j - i);
if (e != null)
{
result += e;
j++;
}
i = j;
}
}
return result;
}

function GetPopupCssText()
{
var styles = document.styleSheets;
var csstext = "";
for(var i=0; i<styles.length; i++)
{
if (styles[i].id == "popupmanager")
csstext += styles[i].cssText;
}
return csstext;
}

function PopupWin(winID)
{
this.Win = document.getElementById(winID);
this.Menu = document.getElementById(winID + "_Menu");
this.Icon = document.getElementById(winID + "_Icon");
this.MenuButton = document.getElementById(winID + "_MenuButton");
this.CloseButton = document.getElementById(winID + "_CloseButton");
this.Caption = document.getElementById(winID + "_Caption");
this.CaptionText = document.getElementById(winID + "_CaptionText");
this.Body = document.getElementById(winID + "_Body");
this.BodyText = document.getElementById(winID + "_BodyText");
}

function Popup(winID, message, icon, title, func)
{
this.PostID;
this.URL;
this.Type = "Mail"; // Mail,Thread,Post,Message
this.win = new PopupWin(winID);
this.popup = null;
this.popupMenu = null;
this.PopupManager = null;
this.showTime = null;
this.func = func;
this.isMouseOver = false;
this.CreateBody = Popup_CreateBody;
this.Close = Popup_Close;
this.Hide = Popup_Hide;
this.Show = Popup_Show;
this.ShowTime = Popup_ShowTime;
this.aspxl = this.CreateBody(message, icon, title);
}

function Popup_Close()
{
if (this.popup != null)
this.popup.document.onmouseover = null;
else
this.win.Win.onmouseover = null;

this.isMouseOver = false;
this.ShowTime = function()
{
return 7;
}
this.Hide();
}
...全文
1986 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahcsdn 2006-07-07
  • 打赏
  • 举报
回复
我还mark 一下
shankaipingo 2006-06-16
  • 打赏
  • 举报
回复
Great!!!
boylez 2006-05-23
  • 打赏
  • 举报
回复
m
michaelowenii 2006-02-21
  • 打赏
  • 举报
回复
我还mark 一下
weiqj8686 2006-02-17
  • 打赏
  • 举报
回复
thank you!
junhao_666 2006-01-04
  • 打赏
  • 举报
回复
kofkyo 2006-01-03
  • 打赏
  • 举报
回复
I like it
L_dreamer 2005-09-21
  • 打赏
  • 举报
回复
mark
yejunyan 2005-09-15
  • 打赏
  • 举报
回复
好文,收藏学习!
hchxxzx 2005-09-12
  • 打赏
  • 举报
回复
你要先结贴,然后才能添加到FAQ。
renyu732 2005-09-09
  • 打赏
  • 举报
回复
up
pclogic 2005-09-09
  • 打赏
  • 举报
回复
感谢楼主分享
qq801221 2005-09-09
  • 打赏
  • 举报
回复
谢谢老大
稍微有点无敌 2005-09-09
  • 打赏
  • 举报
回复
to singlepine (小山)
能把相关的图片发给我吗?
jrt324@126.com
zhuyunping 2005-09-09
  • 打赏
  • 举报
回复
收藏^0^
joinu 2005-09-09
  • 打赏
  • 举报
回复
这样的东西 值得收藏
pwqzc 2005-09-09
  • 打赏
  • 举报
回复
无论怎么样
当web窗体失去焦点的时候他就不能够popup
如果当web窗体失去焦点的时候也能够popup就好拉
whispers 2005-09-09
  • 打赏
  • 举报
回复
感谢楼主分享
稍微有点无敌 2005-09-09
  • 打赏
  • 举报
回复
好东东!!
谢谢!收藏!!
yeskele 2005-09-09
  • 打赏
  • 举报
回复
恩,好东西一定要收藏的
加载更多回复(11)
内容概要:本文研究了一种用于永磁同步电机(PMSM)全速域运行的无传感器复合控制策略,提出了一种基于高频信号注入与自适应滑模观测器(SMO)的加权融合方法。该策略针对电机在零低速与中高速不同工况下的控制难题,采用脉振方波高频注入法实现静止及低速状态下转子初始位置的精确估计,并引入模糊超螺旋滑模观测器实现中高速运行时转速与位置的实时跟踪。为确保全速域内平滑过渡,设计了动态加权切换机制与相位同步校正策略,有效抑制了传统切换过程中的抖振与失步现象。整个控制系统在Simulink环境中构建仿真模型,经多工况测试验证,该复合控制策略在宽速范围内展现出优良的动静态性能、强鲁棒性以及良好的抗干扰能力,适用于高性能电机驱动系统的无传感器控制需求。; 适合人群:具备电机控制、现代控制理论及MATLAB/Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及从事高性能电机驱动系统开发的工程师。; 使用场景及目标:① 解决永磁同步电机在无机械传感器条件下全速域运行的转速与位置估计难题;② 学习高频注入法与滑模观测器的原理及其在低速和高速区的应用差异;③ 掌握异构观测器融合与平滑切换机制的设计方法,提升复杂控制系统的设计与仿真能力。; 阅读建议:建议读者结合文中系统架构图与仿真模型逐步理解各模块功能,重点关注高频注入信号的解调过程、滑模观测器的设计与稳定性分析、加权切换逻辑的实现方式,并通过调整参数进行仿真验证,深入掌握控制策略的实现细节与优化思路。
内容概要:本文档为SECS-GEM规格说明书,详细定义了半导体制造设备与主机系统之间通信的标准化接口规范。文档涵盖了通信协议(如HSMS)、状态模型(通信、控制及设备处理状态)、设备能力实现(事件通知、数据采集、报警管理、远程控制、过程程序管理等)以及具体的消息类型和数据格式。通过状态图和消息交互场景,明确了设备在不同通信和控制状态下的行为逻辑,并规定了TCP/IP超时参数、变量命名、报警分类等级等关键技术细节,确保设备与主机间的可靠通信与协同控制。 适合人群:半导体设备制造商的技术工程师、自动化系统集成商、工厂MES系统开发人员,以及需要对接SECS/GEM协议的研发与运维人员。 使用场景及目标:①用于指导设备端GEM功能的开发与调试;②支持主机系统(如MES)正确解析设备状态、采集实时数据、下发控制指令;③实现设备报警监控、工艺程序管理、时间同步及终端信息交互等功能,提升产线自动化与信息化水平。 阅读建议:本规格书技术性强,建议结合实际通信抓包工具(如Wireshark)和SECS模拟器进行对照学习与测试验证,重点关注消息流向、状态转换条件及异常处理机制,以确保系统集成的准确性与稳定性。

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧