JS中window.showModalDialog()詳解 HTML DOM open() 方法


window.showModalDialog()方法用來創建一個顯示HTML內容的模態對話框。 
window.showModelessDialog()方法用來創建一個顯示HTML內容的非模態對話框。 
使用方法:

vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures]) 
vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures]) 
參數說明: 
sURL--必選參數,類型:字符串。用來指定對話框要顯示的文檔的URL。 
vArguments--可選參數,類型:變體。用來向對話框傳遞參數。傳遞的參數類型不限,包括數組等。對話框通過window.dialogArguments來取得傳遞進來的參數。 
sFeatures-- 可選參數,類型:字符串。用來描述對話框的外觀等信息,可以使用以下的一個或幾個,用分號“;”隔開。 
1.dialogHeight :對話框高度,不小於100px,IE4中dialogHeight 和 dialogWidth 默認的單位是em,而IE5以上是px,為方便其見,在定義modal方式的對話框時,用px做單位。 
2.dialogWidth: 對話框寬度。 
3.dialogLeft: 離屏幕左的距離。 
4.dialogTop: 離屏幕上的距離。 
5.center: {yes | no | 1 | 0 }:窗口是否居中,默認yes,但仍可以指定高度和寬度。 
6.help: {yes | no | 1 | 0 }:是否顯示幫助按鈕,默認yes。 
7.resizable: {yes | no | 1 | 0 } 〔IE5+〕:是否可被改變大小。默認no。 
8.status: {yes | no | 1 | 0 } 〔IE5+〕:是否顯示狀態欄。默認為yes[ Modeless]或no[Modal]。 
9.scroll:{ yes | no | 1 | 0 | on | off }:指明對話框是否顯示滾動條。默認為yes。 
下面幾個屬性是用在HTA中的,在一般的網頁中一般不使用。 
10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印預覽時對話框是否隱藏。默認為no。 
11.edge:{ sunken | raised }:指明對話框的邊框樣式。默認為raised。 
12.unadorned:{ yes | no | 1 | 0 | on | off }:默認為no。 
參數傳遞: 
1.要想對話框傳遞參數,是通過vArguments來進行傳遞的。類型不限制,對於字符串類型,最大為4096個字符。也可以傳遞對象,例如: 
------------------------------- 
parent.htm

<script> 
var obj = new Object(); 
obj.name="i5tt"; 
window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px"); 
</script>

modal.htm 
<script> 
var obj = window.dialogArguments 
alert("您傳遞的參數為:" + obj.name) 
</script> 
------------------------------- 
2.可以通過window.returnValue向打開對話框的窗口返回信息,當然也可以是對象。例如: 
------------------------------ 
parent.htm

<script> 
str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px"); 
alert(str); 
</script>

modal.htm 
<script> 
window.returnValue="http://www.i5tt.com/"; 
</script>

將參數傳遞與返回結果結合在一起的實例

ParentPage.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="JavaScript" type="text/javascript">

        function openwindow() {
            var obj = new Object();
            obj.value = "3";
            obj.name = "4";
            obj.sew = "5";
            str =window.showModalDialog("ChildPage.aspx",obj,"dialogWidth=200px;dialogHeight=100px");
            alert(str);

        }

        function openModelessDialog() {
            var obj = new Object();
            obj.value = "3";
            obj.name = "4";
            obj.sew = "5";
            str = window.showModelessDialog("ChildPage.aspx", obj, "dialogWidth=200px;dialogHeight=100px");
            alert(str);

        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" id="btnOpen" value="打開模態窗口" onclick="openwindow();" />
    <input type="button" id="Button1" value="打開非模態窗口" onclick="openModelessDialog();" />
    </div>
    </form>
</body>
</html>

ChildPage.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function getArguments() {
            var obj = window.dialogArguments
            alert("您傳遞的參數為:" + obj.value)
        }

 

 

        function windowclose() {
            window.returnValue = "childPage.Close";
        }
    </script>
</head>
<body onunload="windowclose();">
    <form id="form1" runat="server">
    <div>
    <input type="button" id="btnOpen" value="打開窗口" onclick="getArguments();" />
    <input type="button" id="btnClose" value="關閉窗口" onclick='self.close(); ' />

    </div>
    </form>
</body>
</html>

 

 

 

 

 

 

open函數語法

window.open(url, name, features, replace);

open函數參數說明

  • url -- 要載入窗體的URL
  • name -- 新建窗體的名稱(也可以是HTML target屬性的取值,目標)
  • features -- 代表窗體特性的字符串,字符串中每個特性使用逗號分隔
  • replace -- 一個布爾值,說明新載入的頁面是否替換當前載入的頁面,此參數通常不用指定

open函數name參數說明

name用於設置彈出窗體的名稱,如果使用已有的窗體或框架名稱作為name參數,那么url網址將在這個窗體或框架頁面載入

例如:

<a href="http://www.dreamdu.com/" target="dreamdu">使用HTML連接建立一個頁面</a>
<a href="#" onclick="window.open('http://www.dreamdu.com/xhtml/','dreamdu');">使用JavaScript在上面已經建立連接的頁面載入HTML教程</a>

首先使用普通HTML鏈接打開一個頁面(target名為dreamdu),之后使用open函數打開另一個頁面,瀏覽器首先要查找是否有名稱為dreamdu的窗體,如果有,就在這個窗體中加載夢之都HTML教程網址。否則新建一個名稱為dreamdu的窗體並加載夢之都HTML教程網址

open函數默認的打開窗體的方式為target的_blank彈出方式,因此頁面都將以彈出的方式打開

open函數features參數說明

如果不使用第三個參數,將打開一個新的普通窗口

open函數features參數說明,通過特性字符串可以定義新的特性的窗口
參數名稱 類型 說明
height Number 設置窗體的高度,不能小於100
left Number 說明創建窗體的左坐標,不能為負值
location Boolean 窗體是否顯示地址欄,默認值為no
resizable Boolean 窗體是否允許通過拖動邊線調整大小,默認值為no
scrollable Boolean 窗體中內部超出窗口可視范圍時是否允許拖動,默認值為no
toolbar Boolean 窗體是否顯示工具欄,默認值為no
top Number 說明創建窗體的上坐標,不能為負值
status Boolean 窗體是否顯示狀態欄,默認值為no
width Number 創建窗體的寬度,不能小於100

特性字符串中的每個特性使用逗號分隔,每個特性之間不允許有空格

open函數返回值

新建立的window對象

猴子提示: 不建議使用彈出窗體,HTML彈出窗體

示例

window.open("http://www.dreamdu.com/", "dreamduwin", "width=500,height=300,left=10,top=20,location=yes,status=yes");

新建一個寬度為500像素,高度為300像素,距離屏幕左上角水平偏移10像素,垂直偏移20像素,有地址欄與狀態欄的窗體

var oWin=window.open("http://www.dreamdu.com/", "dreamduwin");
oWin.resizeTo(800,600);        //重新設置窗體大小
oWin.moveTo(50,50);        //移動窗體
oWin.close();                //關閉窗體

window.open函數新建立窗體后會返回新建窗體的window對象,通過此對象可以控制窗體(移動,改變大小,關閉)

<input type="button" value="在新窗口中打開夢之都!" onclick="window.open('http://www.dreamdu.com/', 'dreamduwin', 'width=500,height=300,left=10,top=20,location=yes,status=yes');" />

JavaScript opener數示例

 

<script type="text/javascript">
function f4(){
	open("ab.html","_blank","width=500,height=300,");
}
</script>
<input type="button" value="f6" onclick="f6()">
<div id="ddv"></div>

  

<script type="text/javascript">
function f10(){
		opener.f5();

	}
function f9(){
			opener.document.getElementById("ddv").innerHTML="gaile";

	}
</script>
<input type="button" value="gai" onclick="f9()">
<input type="button" value="gai" onclick="f10()">

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM