easyui彈出框全局遮罩的實現


用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頁面上了,也就是實現了全局遮罩的效果。
//不知道各位有沒有更好的實現方式?請賜教。
相關文章
相關標籤/搜索