用EasyUI作一個管理系統,左邊導航欄,右邊主區域TAB,tab裏面嵌入一個iframe。而後全部的操做都到iframe裏面了。在iframe裏面引入datagrid,搞個工具欄,彈出框啊什麼的都只能遮罩住iframe的頁面,雖然沒什麼大礙,但是看着很不爽啊!我想遮罩住整個頁面,怎麼辦?網上找了下資料有是有,都他們COPY的啊,後來在一個地方找到了,哈哈,網址忘了,原創別罵我哈。這裏貼出來,有須要的拿去吧。html
//在工具欄下的按鈕調用此函數便可,該函數彈出一個窗口,在頁面最頂層,遮罩全局。 //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頁面上了,也就是實現了全局遮罩的效果。 //不知道各位有沒有更好的實現方式?請賜教。