隨筆 - 14, 文章 - 39, 評論 - 17, 引用 - 0
          數據加載中……

          IE中非模式對話框(showModelessDialog)應用 [轉]

          非模式對話框是IE的一種窗口形式,打開非模式對話框后,在其被關閉之前,主調窗口不會繼續解析其后的htm代碼,同時主調窗口也不會被選中。

          ?

          主調窗口與非模式窗口的信息傳遞

          1.函數調用傳遞方式

          vReturnValue = window.showModelessDialog ( sURL [, vArguments] [, sFeatures] )

          ?

          主調窗口通過showModelessDialog方法的第二個參數 vArguments 向非模式窗口傳遞參數,該參數可以是數組,也可以是DOM對象。

          非模式窗口通過window.dialogArguments 來提取傳遞過來的參數,若是數組,則用window.dialogArguments[i]來表示數組的第i個參數

          非模式窗口通過window.returnValue向主調窗口傳回值,這個值作為showModelessDialog 方法的返回值被主調窗口接收。

          ?

          2.窗口操作傳遞方式

          非模式窗口通過主調窗口傳遞過來window對象直接操縱主調窗口的元素

          此時showModelessDialog 需要將主調窗口的 window 對象作為參數傳出,在非模式窗口中即可取得主調窗口的窗口參考,用腳本可以直接對它操縱。

          ?

          如主調窗口的調用代碼如下:

          showModelessDialog ("myDialog.htm",window,"status:false;dialogWidth:300px;dialogHeight:300px;edge:Raised; enter: Yes; help: No; resizable: No; status: No");

          ?

          非模式窗口JScript代碼如下,即可接收主調窗口的窗口對象

          ? var sData = window.dialogArguments;

          ?

          接著就可以操作主調窗口的任意變量和函數了,如下:

          ? sData.sUserName = ‘Value from ModelessDialog’; // sUserName是主調窗口的全局變量

          ? sData.fnUpdate(); //fnUpdate是主調窗口的函數,在該函數中對sUserName變量做處理

          ?

          這種方式下,主調窗口可以不通過普通返回值方式取得非模式窗口設定的數值

          ?

          備注:

          將主調窗口的Window對象傳入非模式窗口是一種很靈活的操作手段。但在實踐中發現,窗口對象只能是主調窗口自己的,你不能通過Dom對象結構,將其他幀頁面(非主調窗口)的Window對象傳入。但在非模窗口中可以根據傳入的主調窗口的Window對象,通過Dom對象結構引用到非主調窗口的任何對象。

          ?

          關于非模式對話框的參數設置sFeatures見

          http://msdn.microsoft.com/workshop/samples/author/dhtml/refs/showModelessDialog.htm



          posted on 2006-12-06 14:18 mlw2000 閱讀(290) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 张掖市| 金阳县| 武山县| 大关县| 胶南市| 黎平县| 台安县| 平昌县| 衡东县| 津市市| 天全县| 湘阴县| 安龙县| 青川县| 洛扎县| 合山市| 桂阳县| 桦甸市| 元江| 札达县| 牟定县| 阿坝县| 镇江市| 临漳县| 墨玉县| 四会市| 灌南县| 河曲县| 庆云县| 洛南县| 二连浩特市| 建德市| 灵寿县| 肇东市| 曲水县| 邢台市| 青龙| 满城县| 江城| 阜宁县| 项城市|