如何把popup特性从宝玉的论坛代码中拆分出来呢?
编写者:郑昀
时间:20050128
我们要在后台向ie前台发送请求,让浏览器弹出popup一个,来达到提示用户的效果,而不是做一个定时器不断地去后台取数据提示论坛新帖子的方式。
这样,从cnforums1[1].2源代码中取出以下文件:
l popupmanager.cs(去除对aspnetforum的引用代码);
l skinnedforumwebcontrol.cs(去除对aspnetforum的引用代码);
l popupmanager.js;
l skins目录下的popupmanager.ascx;
l css目录下的popupmanager.css;
l images目录下的所有图片;
把这些文件加入你的工程中。
在你的default.aspx页面中加入:
<link rel=stylesheet type=text/css href=css/popupmanager.css>
<script src="scripts/popupmanager.js" type="text/javascript"></script>
和
<exp:popupmanager runat="server" id="popupmanager1" visible="false" enableviewstate="false" />
然后,在default.aspx.cs中加入如下代码:
protected linktone.tonereports.components.popupmanager popupmanager1;
/// <summary>
/// 通过这个函数,设定超越ie窗口的popup窗口的诸多属性
/// </summary>
/// <param name="sender">
/// 发送体
/// </param>
/// <param name="stitle">popup信息的完整信息</param>
/// <param name="sinfo">popup信息的简短提示</param>
///
private void popup(
string stitle,
string sinfo)
{
popupmanager1.visible = true;
//编辑须执行的脚本语言
string javascript = @"<script language = javascript>try{var popupmanager = new popupmanager();" +
"var p = popupmanager.addpopup(popupwin, " + stitle +
", images/popup_icon_post.gif, " + sinfo + ", showpost);p.postid = 1;p.url = nodeurl.text;}catch(e){}" +
"function showpost(popup){}</script>";
//执行
this.page.registerstartupscript("",javascript);
}
之后你就可以在aspx.cs中通过调用以下代码让浏览器弹出对话框了:
/// 这是一个只有ie5.5才支持的特性,超越ie自身窗体的弹出窗口
popup("歌手查询完毕", "敬请察看结果:彩铃数据分析系统");
出来的效果如下所示:
点击页面上的按钮,将弹出一个窗口,只弹出一遍:
