Javascript showModalDialog兩個(gè)窗體之間傳值
javascript中還有一個(gè)函數(shù)window.showModalDialog也可以打開(kāi)一個(gè)新窗體,不過(guò)他打開(kāi)的是一個(gè)模態(tài)窗口,那么如何在父窗體和子窗體之間傳值呢?我們先看該函數(shù)的定義:vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
參數(shù)說(shuō)明:
sURL--必選參數(shù),類(lèi)型:字符串。用來(lái)指定對(duì)話框要顯示的文檔的URL。
vArguments--可選參數(shù),類(lèi)型:變體。用來(lái)向?qū)υ捒騻鬟f參數(shù)。傳遞的參數(shù)類(lèi)型不限,包括數(shù)組等。對(duì)話框通過(guò)window.dialogArguments來(lái)取得傳遞進(jìn)來(lái)的參數(shù)。
sFeatures--可選參數(shù),類(lèi)型:字符串。用來(lái)描述對(duì)話框的外觀等信息,可以使用以下的一個(gè)或幾個(gè),用分號(hào)“;”隔開(kāi)。
dialogHeight :對(duì)話框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默認(rèn)的單位是em,而IE5中是px,為方便其見(jiàn),在定義modal方式的對(duì)話框時(shí),用px做單位。
dialogWidth: 對(duì)話框?qū)挾取?
dialogLeft: 離屏幕左的距離。
dialogTop: 離屏幕上的距離。
center: {yes | no | 1 | 0 }:窗口是否居中,默認(rèn)yes,但仍可以指定高度和寬度。
help: {yes | no | 1 | 0 }:是否顯示幫助按鈕,默認(rèn)yes。
resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改變大小。默認(rèn)no。
status: {yes | no | 1 | 0 } [IE5+]:是否顯示狀態(tài)欄。默認(rèn)為yes[ Modeless]或no[Modal]。
scroll:{ yes | no | 1 | 0 | on | off }:指明對(duì)話框是否顯示滾動(dòng)條。默認(rèn)為yes。
如:"dialogWidth=200px;dialogHeight=100px"
因此我們可以通過(guò)window.dialogArguments參數(shù)來(lái)在兩個(gè)窗體之間傳值
如下面兩個(gè)頁(yè)面:FatherPage.htm:
<script type="text/javascript">
function OpenChildWindow()
{
window.showModalDialog('ChildPage.htm',document.getElementById('txtInput').value);
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />
ChildPage.htm:
<body onload="Load()">
<script type="text/javascript">
function Load()
{
document.getElementById('txtInput').value=window.dialogArguments ;
}
</script>
<input type="text" id="txtInput" />
</body>
上面只是傳遞簡(jiǎn)單的字符串,我們還可以傳遞數(shù)組,如:FatherPage.htm:
XML-Code:
<script type="text/javascript">
function OpenChildWindow()
{
var args = new Array();
args[0] = document.getElementById('txtInput').value;
window.showModalDialog('ChildPage.htm',args);
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />ChildPage.htm:
XML-Code:
<script type="text/javascript">
function Load()
{
document.getElementById('txtInput').value=window.dialogArguments[0] ;
}
</script>
同樣我們還可以傳遞對(duì)象,如:FatherPage.htm:
XML-Code:
<script type="text/javascript">
function OpenChildWindow()
{
var obj = new Object();
obj.name = document.getElementById('txtInput').value;
window.showModalDialog('ChildPage.htm',obj);
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />
ChildPage.html:
XML-Code:
<script type="text/javascript">
function Load()
{
var obj = window.dialogArguments;
document.getElementById('txtInput').value=obj.name ;
}
</script>
以上都是從父窗體向子窗體傳值,那么如何從子窗體向父窗體傳值呢 ?其實(shí)通過(guò)window.returnValue就可以獲取子窗體的值,window.returnValue與window.dialogArguments一樣,可以是任意變量,包括字符串,數(shù)組,對(duì)象等。如:FatherPage.html:
XML-Code:
<script type="text/javascript">
function OpenChildWindow()
{
var obj = new Object();
obj.name = document.getElementById('txtInput').value;
var result = window.showModalDialog('ChildPage.htm',obj);
document.getElementById('txtInput').value = result.name;
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="OpenChild" onclick="OpenChildWindow()" />
ChildPage.html:
XML-Code:
<body onload="Load()">
<script type="text/javascript">
function Load()
{
var obj = window.dialogArguments;
document.getElementById('txtInput').value=obj.name ;
}
function SetValue()
{
var obj = new Object();
obj.name = document.getElementById('txtInput').value;
window.returnValue = obj;
window.close();
}
</script>
<input type="text" id="txtInput" />
<input type="button" value="SetFather" onclick="SetValue()" />
</body>
- javascript showModalDialog模態(tài)對(duì)話框使用說(shuō)明
- js的window.showModalDialog及window.open用法實(shí)例分析
- JS中showModalDialog 的使用解析
- js showModalDialog參數(shù)的使用詳解
- javascript showModalDialog傳值與FireFox的window.open 父子窗口傳值示例
- js showModalDialog彈出窗口實(shí)例詳解
- javascript showModalDialog,open取得父窗口的方法
- JavaScript中window.showModalDialog()用法詳解
- javascript showModalDialog 多層模態(tài)窗口實(shí)現(xiàn)頁(yè)面提交及刷新的代碼
- JS對(duì)話框_JS模態(tài)對(duì)話框showModalDialog用法總結(jié)
- javascript showModalDialog 內(nèi)跳轉(zhuǎn)頁(yè)面的問(wèn)題
- js showModalDialog 彈出對(duì)話框的簡(jiǎn)單實(shí)例(子窗體)
- JS中showModalDialog關(guān)閉子窗口刷新主窗口用法詳解
相關(guān)文章
原生js實(shí)現(xiàn)仿window10系統(tǒng)日歷效果的實(shí)例
下面小編就為大家?guī)?lái)一篇原生js實(shí)現(xiàn)仿window10系統(tǒng)日歷效果的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10JS監(jiān)聽(tīng)滾動(dòng)和id自動(dòng)定位滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了JS監(jiān)聽(tīng)滾動(dòng)和id自動(dòng)定位滾動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12javascript代碼優(yōu)化的8點(diǎn)總結(jié)
本篇文章給大家分享了關(guān)于javascript代碼優(yōu)化的8點(diǎn)總結(jié),希望我們整理的內(nèi)容能夠幫助到大家。2018-01-01如何利用 JS 腳本實(shí)現(xiàn)網(wǎng)頁(yè)全自動(dòng)秒殺搶購(gòu)功能
這篇文章主要介紹了如何利用 JS 腳本實(shí)現(xiàn)網(wǎng)頁(yè)全自動(dòng)秒殺搶購(gòu)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Javascript 兼容firefox的一些問(wèn)題
上午在做一些測(cè)試.把頁(yè)面拿到火狐上去就出現(xiàn)一堆問(wèn)題.頁(yè)面布局先不說(shuō).Javascript代碼的問(wèn)題就夠頭疼2009-05-05JavaScript 面向?qū)ο蟪绦蛟O(shè)計(jì)詳解【類(lèi)的創(chuàng)建、實(shí)例對(duì)象、構(gòu)造函數(shù)、原型等】
這篇文章主要介紹了JavaScript 面向?qū)ο蟪绦蛟O(shè)計(jì),結(jié)合具體實(shí)例形式詳細(xì)分析了JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)中類(lèi)的創(chuàng)建、實(shí)例對(duì)象、構(gòu)造函數(shù)、原型等相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05淺談jQuery異步對(duì)象(XMLHttpRequest)
文章淺顯易懂的將jQuery異步對(duì)象分為了5個(gè)步奏,非常有利于我們學(xué)習(xí)記憶,是篇相當(dāng)不錯(cuò)的學(xué)習(xí)jQuery異步對(duì)象的文章,這里推薦給大家。2014-11-11js 監(jiān)控iframe URL的變化實(shí)例代碼
下面小編就為大家?guī)?lái)一篇js 監(jiān)控iframe URL的變化實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07