用EasyUI做一个管理系统,左边导航栏,右边主区域TAB,tab里面嵌入一个iframe。然后所有的操作都到iframe里面了。在iframe里面引入datagrid,搞个工具栏,弹出框啊什么的都只能遮罩住iframe的页面,虽然没什么大碍,可是看着很不爽啊!我想遮罩住整个页面,怎么办?网上找了下资料有是有,都他们COPY的啊,后来在一个地方找到了,哈哈,网址忘了,原创别骂我哈。这里贴出来,有需要的拿去吧。
//在工具栏下的按钮调用此函数即可,该函数弹出一个窗口,在页面最顶层,遮罩全局。 //title -- 弹出窗口左上角的名称 //href -- 该弹出框内部容纳的页面,是一个完整的jsp或html页面 function showWindow(title, href, width, height, modal) { var openWin = window.top.$(‘<div id="myWinId" class="easyui-window" closed="true"></div>‘).appendTo(window.top.document.body); openWin.window({ title: title, width: width === undefined ? 360 : width, height: height === undefined ? 300 : height, content: ‘<iframe scrolling="no" frameborder="0" src="‘ + parent.getBasePath()+href + ‘" style="width:100%;height:100%;"></iframe>‘, modal: modal === undefined ? true : modal, minimizable: false, maximizable: false, shadow: false, cache: false, closed: false, collapsible: false, resizable: false, loadingMessage: ‘正在加载数据,请稍等片刻......‘, onClose : function(){ openWin.window("destroy"); } }); } //这个函数写在最外面的jsp页面中,即iframe的容器中,子页面调用是前面加上parent即可 function getBasePath() { var location = (window.location+‘‘).split(‘/‘); var basePath = location[0]+‘//‘+location[2]+‘/‘+location[3]+‘/‘; return basePath; } //对于弹出的一些警告框,要想在弹出是遮罩整个页面,把这个封装一下,放在主页面,然后通过 // parent.globalAlert()来调用即可。以此类推,confirm或者progressBar都可以这么做 function globalAlert(name, msg, level) { $.messager.alert(name, msg, level); } //简单而言,登陆进来之后,就是index.jsp,然后index.jsp里有tabs,tabs里有iframe //通过parent来调用的函数放在index.jsp中,然后iframe中在函数前加上parent.就可以调用了 //这样弹出窗就是在index.jsp页面上了,也就是实现了全局遮罩的效果。 //不知道各位有没有更好的实现方式?请赐教。
原文:http://my.oschina.net/u/2245029/blog/525833