1. 程式人生 > >關於專案中彈出層中再彈一層中的解決辦法

關於專案中彈出層中再彈一層中的解決辦法

開發做專案,新建修改一般都已經封裝好了彈出框的方法,在彈出的頁面如果再次呼叫封裝的彈出框的時候,會把原本的彈出框給覆蓋了,這樣就失去了想要的效果。在這個時候就需要用window.open()方法了

window.open(URL,name,features,replace);具體方法可檢視文件:http://www.w3school.com.cn/jsref/met_win_open.asp

window.open()方法中,有個屬性:scrollbars=yes 可以顯示滾動條,適合IE瀏覽器
 window.open在ie8下彈出視窗要想有滾動條 , scrollbars=yes, resizable=yes這兩個屬性必須有.

在這裡我摘出了window.open()的屬性值,作為筆記:

   URL    一個可選的字串,聲明瞭要在新視窗中顯示的文件的 URL。如果省略了這個引數,或者它的值是空字串,那麼新視窗就不會顯示任何文件。
    name    一個可選的字串,該字串是一個由逗號分隔的特徵列表,其中包括數字、字母和下劃線,該字元聲明瞭新視窗的名稱。這個名稱可以用作標記 <a> 和 <form> 的屬性 target 的值。如果該引數指定了一個已經存在的視窗,那麼 open() 方法就不再建立一個新視窗,而只是返回對指定視窗的引用。在這種情況下,features 將被忽略。
    feature一個可選的字串,聲明瞭新視窗要顯示的標準瀏覽器的特徵。如果省略該引數,新視窗將具有所有標準特徵。在視窗特徵這個表格中,我們對該字串的格式進行了詳細的說明。
    replace一個可選的布林值。規定了裝載到視窗的 URL 是在視窗的瀏覽歷史中建立一個新條目,還是替換瀏覽歷史中的當前條目。支援下面的值: true - URL 替換瀏覽歷史中的當前條目。 false - URL 在瀏覽歷史中建立新的條目。
  

feature的具體屬性如下,常用的我做了標記:

channelmode=yes|no|1|0    是否使用劇院模式顯示視窗。預設為 no。
    directories=yes|no|1|0    是否新增目錄按鈕。預設為 yes。
    fullscreen=yes|no|1|0    是否使用全屏模式顯示瀏覽器。預設是 no。處於全屏模式的視窗必須同時處於劇院模式。
    height=pixels    視窗文件顯示區的高度。以畫素計。
    left=pixels    視窗的 x 座標。以畫素計。
    location=yes|no|1|0    是否顯示地址欄位。預設是 yes。
    menubar=yes|no|1|0    是否顯示選單欄。預設是 yes。
    resizable=yes|no|1|0    視窗是否可調節尺寸。預設是 yes。
    scrollbars=yes|no|1|0    是否顯示滾動條。預設是 yes。


    status=yes|no|1|0    是否新增狀態列。預設是 yes。
    titlebar=yes|no|1|0    是否顯示標題欄。預設是 yes。
    toolbar=yes|no|1|0    是否顯示瀏覽器的工具欄。預設是 yes。
    top=pixels    視窗的 y 座標。
    width=pixels    視窗的文件顯示區的寬度。以畫素計。

以下來一個常用的例子:

function addJtxx(sxunid){
	var iHeight = 550 ;
	var iWidth = 830;
	var url = "commonweb.action?formid=J60f2ee73eec424ca7a6a7735c9563a8&sxunid="+sxunid;
	var iTop = (window.screen.height-30-iHeight)/2; //獲得視窗的垂直位置;  
	var iLeft = (window.screen.width-10-iWidth)/2; //獲得視窗的水平位置;  
	window.open(url,'','height='+iHeight+',innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');  
}