JS frameset框架下弹出层实现方案

作者:青柠时间:2026-10-30 05:09:42浏览:579

本文介绍在frameset布局中实现右下角消息提醒的方法。通过将消息图标置于左侧导航,利用window.parent跨框架调用主框架函数,结合jQuery的messager插件控制弹窗样式与动画,实现兼容IE8及Chrome的消息提示功能。

frameset框架弹出层实现方案

此前在开发项目时,涉及一个消息提醒功能。相信许多开发者都处理过类似需求,这里分享我在实现过程中遇到的问题及解决思路。

项目基础架构采用frameset框架,具体代码结构如下。

框架布局代码


<frameset name="myFrame" cols="85,*" frameborder="no" border="0" framespacing="0">
<frame src="${base}/left.jsp" name="leftFrame" frameborder="no" scrolling="auto" noresize="noresize" 
id="leftFrame" /> 
<frame src="${base}/welcome.jsp" name="mainFrame" frameborder="no" scrolling="auto" noresize="noresize" 
id="mainFrame" />
</frameset> 

该布局将页面划分为左右两个区域。

需求是在任意页面点击消息图标时,于右下角弹出消息提示框。

此前未接触过此类场景,经查阅资料后,先确定了使用jquery的message插件,随后掌握了操作父框架的JS方法,最终解决了该问题。

由于left.jsp作为菜单导航页面保持固定不变,因此将消息图标放置在该页面中。

left.jsp页面中包含以下JS函数:

左侧消息触发函数


function openMsg(msgType){
//调用父窗体的获取消息js
window.parent.getMessage(msgType);
}

这是在left页面中触发打开消息的JS函数,其中msgType参数用于标识消息状态。

window.parent用于返回父窗口对象。

注意:若当前窗口本身即为顶层窗口,parent属性返回对自身的引用。

在框架网页中,父窗口通常等同于顶层窗口;但若框架内部嵌套了其他框架,则父窗口与顶层窗口可能不一致。

利用上述方法,即可直接调用main框架中的getMessage()函数。

main框架中的getMessage()函数定义如下:

主框架消息处理函数


function getMessage(msgType){
/*$.messager.lays(width, height);
*该方法主要用来定义弹出窗口的宽度和高度。
*/
$.messager.lays(200, 150);
var msg="无消息"
if(msgType==1){
msg="jqueryMessage新消息提醒";
}else{
msg="jqueryMessage已提醒消息";
}
/*$.messager.show(title,text,time);
*该方法主要定义窗口显示的内容,以及窗口显示多长时间后进行隐藏。
*如果使用默认的标题,则将title设置为0,另外title和text还可以设置为html内容进行显示。如果希望用户点击弹窗的关闭按钮才关闭 
*消息框,可将time设置为0。
*/
$.messager.show("消息提醒",msg);
}
</script> 

此外还涉及$.messager.anim(type,speed)方法。

该方法用于定义窗口呈现的动画效果及速度。

$.messager.anim("fade",1000); //以fadeIn动画方式显示

$.messager.anim("show",1000); //以show动画方式显示

以上简要介绍了jquery的message插件中常用的几个方法。

使用前需在页面中引入jquery.js和jquery.messager.js文件。

通过上述组合,完成了整套功能实现。

frameset框架弹出层实现方案

此效果图在IE8下运行正常,且兼容谷歌浏览器。关于frameset弹出层效果的介绍到此结束,希望有所帮助!

作者最新文章