隨筆 - 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 閱讀(285) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 石嘴山市| 凤庆县| 宣恩县| 姚安县| 临朐县| 泾阳县| 景宁| 清水河县| 玉山县| 兰溪市| 克山县| 门源| 浪卡子县| 河南省| 磐石市| 墨脱县| 章丘市| 昭觉县| 深州市| 合山市| 酒泉市| 南京市| 利川市| 新平| 老河口市| 白沙| 克什克腾旗| 田林县| 视频| 阿拉善左旗| 商水县| 仁怀市| 青神县| 富宁县| 巫溪县| 汝城县| 句容市| 东平县| 文安县| 从化市| 方正县|