隨筆 - 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

          主站蜘蛛池模板: 建昌县| 萍乡市| 奉新县| 扶沟县| 大埔区| 嘉兴市| 延边| 武安市| 吉木乃县| 晋江市| 佳木斯市| 会昌县| 建宁县| 闵行区| 克东县| 晋中市| 高雄市| 云龙县| 旬阳县| 龙岩市| 高邮市| 迭部县| 兴宁市| 朔州市| 邹城市| 铜陵市| 无极县| 南昌市| 南部县| 建平县| 宁陵县| 大渡口区| 吕梁市| 农安县| 阜宁县| 庄河市| 阿尔山市| 新巴尔虎左旗| 丽江市| 广东省| 蒙阴县|