模式對話方塊父子視窗間的通訊

2021-08-29 19:09:42 字數 1403 閱讀 1938

本文主要對防止模式對話方塊彈出新子視窗,和父子視窗間的通訊進行介紹。

比如,如下**是子視窗(模式視窗)的jsp中的js**。

function test()

}"key"是jsp頁面中某標籤的id,比如其可以是,其中value1是action中的某個返回屬性,當value1=true時,子視窗就向父視窗返回true並關閉該子視窗(呼叫window.close();).

上面光給出了子視窗中的js**,下面給出子視窗中的jsp**,比如jsp**為:

..............................

上面中的window.name=「heihei」;就是防止子視窗重新再另外開啟乙個子視窗的。並且window.name="heihei"中的"heihei"要和表單中的target的值(」heihei「)相同,簡而言之就是,每次開啟的子視窗都是當前視窗,即是在target指定的視窗中開啟。要實現在模態子視窗中傳值到父視窗,需要使用window.returnvalue完成

在父視窗中就可以得到該子視窗返回的值,其得到方式為:

var newwin=window.showmodeldialog(url,window,'');當上面的子視窗返回為ture是,父視窗中的值newwin的值就為true否則為false。函式window.showmodeldialog(url,window,'')中的第乙個引數可以是乙個action(比如:test.action或"test.shtml?page=1"),也可以是乙個具體的jsp(test.jsp)頁面。

1. 在子視窗中:

//獲取父視窗某字段值,對該值加一后返回父視窗

var parent=window.dialogarguments;

var x=parent.docuement.getelementbyid("age").value;

x=x+1;

//傳回x值

window.returnvalue=x;

2.在父視窗中:

//獲取來自子視窗的值,並把其賦給某個物件

var newwin=window.showmodeldialog(url,window,'');

if(newwin!=null)

document.getelementbyid("age").value=newwin;

3.子視窗設定父視窗的值使用方法如下:

子視窗中:

//age是父視窗中的某標籤物件的id

var parent=window.dialogarguments;

var x=parent.document.getelementbyid("age").value;

x=x+1;

//設定父視窗中age屬性值

parent.document.getelementbyid("age").value=x;

走筆至此!

模式對話方塊 無模式對話方塊 的區別

開啟乙個模式對話方塊後,其他所有對話方塊都不能用滑鼠和鍵盤操作 非模對話方塊開啟後,它下面的對話方塊還能操作。僅此而已!應用的時候,如果希望多個對話方塊能同時操作,就用非模態的,大多情況下是模態的,好控制!無模式總結 建立時用create,清除時用destroywindow,建立物件時用new,清除...

模式對話方塊與無模式對話方塊

顯示子窗體 1 showdialog 無模式對話方塊 babywindow.showdialog 顯示子窗體 showdialog 無模式對話方塊 無模式 窗體讓您在此窗體與另一窗體之間變換焦點,而不必關閉初始窗體。使用者在該窗體顯示的同時可繼續在任何應用程式的其他位置工作。例如 文字編輯軟體裡面的...

MFC 對話方塊程式 模式對話方塊與非模式對話方塊

一 根據主視窗型別,mfc軟體工程可以分為以下幾種架構模型 例如 記事本和畫筆等。2 mdi multiple document inte ce 多文件介面,乙個主框架視窗下可以同時編輯多份文件。例如 vc 6.0,photoshop等軟體。3 基於對話方塊的軟體模型 主視窗是通過資源管理器,在對話...