亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS對話框_JS模態對話框showModalDialog用法總結

2019-11-20 21:16:27
字體:
來源:轉載
供稿:網友

父窗口:

復制代碼 代碼如下:

<html>
<head>
<title>無標題頁</title>
<script language="javascript" type="text/javascript">
function opendialog1()
 {
 var someValue=window.showModalDialog("b.html","","dialogWidth=500px;dialogHeight=500px;status=no;help=no;scrollbars=no");
 document.form1.p1t.value=someValue;
 }

</script>
</head>
<body>
<form name="form1" action="#">
<input type="text" name="p1t">
<input type="button" value="打開對話框" onclick="opendialog1()">
</form>
</body>
</html>


子窗口:
復制代碼 代碼如下:

<html>
<head>
<title>無標題頁</title>
<script language="javascript" type="text/javascript">
function a()
{
var wname = document.form1.backname.value;
parent.window.returnValue=wname; //父窗口就是上一個頁面
 window.close();
}
</script>
</head>
<body>
<form name="form1" action="">
<input type="text" value="輸入要傳的值" name="backname">
<input type="button" value="傳值" onclick="return a()">
</form>
</body>
</html>

---- 1. 基本語法

---- window對象有一個方法稱為showModalDialog ,我們可以在頁面按鈕的onclick中寫如下代碼:

< BUTTON onclick="window.showModalDialog
('dialog.htm')" >Search< /BUTTON >

---- 系統會在新窗口中打開dialog.htm頁面,并且等待用戶響應,如果用戶不響應該頁面,那么主頁面將得不到光標。
---- 在dialog.htm中設置window對象的returnValue屬性,就可以讓主頁面得到返回值。例如,在頁面的確定按鈕的onclick中寫:

window.returnValue = window.
document.all.iptPeopleID.value

---- 將輸入框iptPeopleID的值賦給window對象的returnValue屬性。在主頁面中就可以得到這個值:
var str = showModalDialog ("dialog1.htm")

---- 2. 傳遞初始化值
---- 如果要向模態頁面中傳遞初始化值,可以在主頁面中用如下語句:

var cSearchValue=showModalDialog
('dialog.htm', 'ABC')
在dialog.htm中使用window.dialogArguments
屬性可以得到'ABC'。例如:
< SCRIPT FOR=window EVENT=onload LANGUAGE="JScript" >
if (window.dialogArguments != null)
window.document.all.iptPeopleID.value = window.dialogArguments;
< /SCRIPT >

---- 3. 傳遞多個數值
---- 如果要向模態頁面中傳遞多個參數,可以先在主頁面中定義一個對象,

function myDialog() {
var str1;
var str2;
}

---- 顯示模態頁面之前初始化該對象,然后調用showModalDialog 方法。
function WelcomeYou(iniStr1,iniStr2) {
myDialog.str1 = iniStr1;
myDialog.str2 =iniStr2 ;

if (showModalDialog ("dialog2.htm", myDialog)
==false) //將對象傳入
......

---- 在模態頁面中,可以用這樣的代碼
window.document.all.iptID.value=
window.dialogArguments.str1
來引用數值,或者用這樣的代碼對之賦值
window.dialogArguments.str1 =
window.document.all.iptID.value

---- 完整例程如下:
---- 對于只傳遞一個參數的情況,見:Main1.htm和dialog1.htm。

---- 對于傳遞多個參數的情況,見:Main2.htm和dialog2.htm。


父窗體:
dim xxx '返回值
dim yyy '傳到子窗體的參數
var xxx = ShowModalDialog ('xxx.asp','yyy','dialogWidth:100px;DialogHeight=290px;status:no')
子窗體:
dim yyy '從父窗體傳來的參數
dim xxx '傳回父窗體的參數
yyy = window.dialogArguments
xxx = window.returnValue
 

window.dialogArguments的用法

Javascript有許多內建的方法來產生對話框,如:window.alert(),window.confirm(),window.prompt().等。然而IE提供更多的方法支持對話框。如:

showModalDialog()(IE4+支持)
showModelessDialog()(IE5+支持)


window.showModalDialog()方法用來創建一個顯示HTML內容的模態對話框,由于是對話框,因此它并沒有一般用window.open()打開的窗口的所有屬性。
window.showModelessDialog()方法用來創建一個顯示HTML內容的非模態對話框。

當我們用showModelessDialog()打開窗口時,不必用window.close()去關閉它,當以非模態方式[IE5]打開時,打開對話框的窗口仍可以進行其他的操作,即對話框不總是最上面的焦點,當打開它的窗口URL改變時,它自動關閉。而模態[IE4]方式的對話框始終有焦點(焦點不可移走,直到它關閉)。模態對話框和打開它的窗口相聯系,因此我們打開另外的窗口時,他們的鏈接關系依然保存,并且隱藏在活動窗口的下面。

使用方法如下:
vReturnValue=window.showModalDialog(sURL[,vArguments][,sFeatures])
vReturnValue=window.showModelessDialog(sURL[,vArguments][,sFeatures])

參數說明:
sURL
必選參數,類型:字符串。用來指定對話框要顯示的文檔的URL。
vArguments
可選參數,類型:變體。用來向對話框傳遞參數。傳遞的參數類型不限,包括數組等。對話框通過window.dialogArguments來取得傳遞進來的參數。
sFeatures
可選參數,類型:字符串。用來描述對話框的外觀等信息,可以使用以下的一個或幾個,用分號“;”隔開。
dialogHeight對話框高度,不小于100px,IE4中dialogHeight和dialogWidth默認的單位是em,而IE5中是px,為方便其見,在定義modal方式的對話框時,用px做單位。
dialogWidth:對話框寬度。
dialogLeft:距離桌面左的距離。
dialogTop:離桌面上的距離。
center:{yes|no|1|0}:窗口是否居中,默認yes,但仍可以指定高度和寬度。
help:{yes|no|1|0}:是否顯示幫助按鈕,默認yes。
resizable:{yes|no|1|0}[IE5+]:是否可被改變大小。默認no。
status:{yes|no|1|0}[IE5+]:是否顯示狀態欄。默認為yes[Modeless]或no[Modal]。
scroll:{yes|no|1|0|on|off}:指明對話框是否顯示滾動條。默認為yes。

還有幾個屬性是用在HTA中的,在一般的網頁中一般不使用。
dialogHide:{yes|no|1|0|on|off}:在打印或者打印預覽時對話框是否隱藏。默認為no。
edge:{sunken|raised}:指明對話框的邊框樣式。默認為raised。
unadorned:{yes|no|1|0|on|off}:默認為no。

傳入參數:
要想對話框傳遞參數,是通過vArguments來進行傳遞的。類型不限制,對于字符串類型,最大為4096個字符。也可以傳遞對象,例如:

test1.htm
====================
<script>
varmxh1=newArray("mxh","net_lover","孟子E章")
varmxh2=window.open("about:blank","window_mxh")
//向對話框傳遞數組
window.showModalDialog("test2.htm",mxh1)
//向對話框傳遞window對象
window.showModalDialog("test3.htm",mxh2)
</script>

test2.htm
====================
<script>
vara=window.dialogArguments
alert("您傳遞的參數為:"+a)
</script>

test3.htm
====================
<script>
vara=window.dialogArguments
alert("您傳遞的參數為window對象,名稱:"+a.name)
</script>

可以通過window.returnValue向打開對話框的窗口返回信息,當然也可以是對象。例如:

test4.htm
===================
<script>
vara=window.showModalDialog("test5.htm")
for(i=0;i<a.length;i++)alert(a[i])
</script>

test5.htm
===================
<script>
functionsendTo()
{
vara=newArray("a","b")
window.returnValue=a
window.close()
}
</script>
<body>
<form>
<inputvalue="返回"type=buttononclick="sendTo()">
</form>

常見問題:
1,如何在模態對話框中進行提交而不新開窗口?
如果你的瀏覽器是IE5.5+,可以在對話框中使用帶name屬性的iframe,提交時可以制定target為該iframe的name。對于IE4+,你可以用高度為0的frame來作:例子,

test6.htm
===================
<script>
window.showModalDialog("test7.htm")
</script>

test7.htm
===================
if(window.location.search)alert(window.location.search)
<framesetrows="0,*">
<framesrc="about:blank">
<framesrc="test8.htm">
</frameset>

test8.htm
===================
<formtarget="_self"method="get">
<inputname=txtvalue="test">
<inputtype=submit>
</form>
<script>
if(window.location.search)alert(window.location.search)
</script>
2,可以通過http://servername/virtualdirname/test.htm?name=mxh方式直接向對話框傳遞參數嗎?
答案是不能。但在frame里是可以的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产乱码久久久久酒店| 日本欧美黄网站| 欧美精品18videosex性欧美| 国产精品丝袜视频| 亚洲综合在线小说| 一区二区日韩精品| 色婷婷亚洲mv天堂mv在影片| 国产日产欧美a一级在线| 日本欧美中文字幕| 亚洲成人黄色网址| 精品久久久香蕉免费精品视频| 国产在线视频不卡| 尤物99国产成人精品视频| 色噜噜久久综合伊人一本| 亚洲欧洲一区二区三区在线观看| 中文字幕av一区中文字幕天堂| 欧美乱妇40p| 精品性高朝久久久久久久| 成人国产精品一区二区| 国产精品久久77777| 中文字幕亚洲无线码a| 日韩在线观看av| 欧美午夜激情视频| 91亚洲永久免费精品| 91老司机在线| 96国产粉嫩美女| 欧美亚洲日本网站| 欧美在线国产精品| 久久亚洲国产精品| 欧美成aaa人片免费看| 欧美疯狂性受xxxxx另类| 欧美黑人又粗大| 92版电视剧仙鹤神针在线观看| 91久久国产综合久久91精品网站| 一区二区三区在线播放欧美| 日本a级片电影一区二区| 欧美电影在线免费观看网站| 亚洲a一级视频| 亚洲第一级黄色片| 亚洲激情 国产| 欧美精品免费看| 色狠狠av一区二区三区香蕉蜜桃| 久久久亚洲网站| 日韩一区二区福利| 日韩天堂在线视频| 日韩精品免费在线视频观看| 97视频免费看| 大桥未久av一区二区三区| 日韩午夜在线视频| 欧美成人在线网站| 国产精品久久久久9999| 亚洲自拍高清视频网站| 日韩av影视综合网| 欧美激情欧美狂野欧美精品| 亚洲高清不卡av| 在线看国产精品| 日韩av电影国产| 亚洲国产精品女人久久久| 亚洲欧美精品一区二区| 亚洲人成伊人成综合网久久久| 成人精品在线观看| 欧美精品一本久久男人的天堂| 国产在线观看91精品一区| 欧美高清在线视频观看不卡| 伊人伊成久久人综合网站| 两个人的视频www国产精品| 欧美视频不卡中文| 激情懂色av一区av二区av| 欧美日韩视频免费播放| 岛国av午夜精品| 中文字幕av一区中文字幕天堂| 亚洲淫片在线视频| 欧美激情免费看| 欧美亚洲视频在线看网址| 久久精品99久久香蕉国产色戒| 国产主播在线一区| 日韩av影视综合网| 国产激情久久久久| 亚洲精品福利视频| 国产精品激情av电影在线观看| 日韩av免费网站| 日韩高清中文字幕| 国产色视频一区| 久久激情视频免费观看| 国产日韩在线亚洲字幕中文| 91中文字幕在线| 国产欧美日韩综合精品| 超碰97人人做人人爱少妇| 久久精品国产亚洲精品2020| 亚洲在线观看视频| 久久久国产影院| 97超级碰在线看视频免费在线看| 国外成人性视频| 国产成人欧美在线观看| 成人妇女免费播放久久久| 日韩精品极品视频| 亚洲欧美一区二区三区四区| 国产视频观看一区| 亚洲精品日韩久久久| 色黄久久久久久| 欧美午夜影院在线视频| 91久久综合亚洲鲁鲁五月天| 久久精品人人做人人爽| 日韩黄色av网站| 亚洲国产欧美一区| 久久综合伊人77777| 日本sm极度另类视频| 国产精品久久久久久av福利软件| 最近2019年好看中文字幕视频| 色哟哟亚洲精品一区二区| 国产玖玖精品视频| 欧美专区国产专区| 免费成人高清视频| 久久精品国产一区| 久久久精品亚洲| 亚洲国产精品久久91精品| 久久久久亚洲精品成人网小说| 国产精品免费久久久| 麻豆国产精品va在线观看不卡| 欧美在线激情网| 狠狠色狠狠色综合日日小说| 亚洲人成欧美中文字幕| 国产欧美精品日韩| 96pao国产成视频永久免费| 这里只有精品在线播放| 日韩欧美亚洲范冰冰与中字| 亚洲理论电影网| 国产精品亚洲网站| 亚洲男女性事视频| 91精品综合视频| 欧美一级高清免费| 97视频在线观看亚洲| 日本精品视频在线播放| 91视频免费网站| 欧美一级电影免费在线观看| 亚洲一区亚洲二区亚洲三区| 国内精品久久久| 成人午夜高潮视频| 欧美日本高清一区| 日韩网站在线观看| 日韩av高清不卡| 国产精品久久久久久久久久ktv| 国产亚洲一区精品| 欧美视频13p| 好吊成人免视频| www国产91| 亚洲品质视频自拍网| 亚洲精品乱码久久久久久按摩观| 亚洲人成网站色ww在线| 亚洲free嫩bbb| 美日韩精品视频免费看| 亚洲精品在线不卡| 91成人在线播放| 日韩最新免费不卡| 一区二区国产精品视频| 久久精品中文字幕一区| 日韩中文字幕不卡视频| 亚洲午夜未满十八勿入免费观看全集| 久久99久久亚洲国产| 久久精品中文字幕免费mv| 久久久视频免费观看| 欧美成人在线免费视频| 亚洲欧美三级在线| 欧美亚洲一区在线|