PageSourceSearch

https://www.idaten.ne.jp/portal/common/js/opendialog.js

js idaten.ne.jp collected 2026-10-02 06:58:25 UTC 8,642 bytes, 240 lines download raw bytes

1var loadedFlg = false;
2var closeHandlerName = "";
3
4var isMobileFlg = false;
5var modalDiv1 = null;
6var allDivArrays1 = new Array();
7var allDivArraysDisplay1 = new Array();
8var modalDiv2 = null;
9var allDivArrays2 = new Array();
10var allDivArraysDisplay2 = new Array();
11
12/**
13 * モーダルダイアログを表示します。
14 * 
15 * @param src モーダルダイアログに読み込む画面のpathを指定します。
16 * @param width ダイアログの幅を指定します。
17 * @param height ダイアログの高さを指定します。
18 * @param openHandleFunctionName ダイアログ表示時に実行されるファンクション名を指定します。
19 * @param closeHandlerFunctionName ダイアログクローズ時に実行されるファンクション名を指定します。
20 */
21function openDialog(url, data, width, height, closeHandlerFunctionName, autoResizeFlg) {
22    // ダイアログクローズ時に実行される関数名を保持する。
23    closeHandlerName = closeHandlerFunctionName;
24    if (autoResizeFlg) {
25    	autoResizeFlg = true;
26    }
27    isMobileFlg = false;
28
29    // ダイアログに表示するiframeオブジェクトを作成する。
30    var modalFrm = $('<iframe height=' + height + ' width='
31            + width + ' style="border:1;">').attr({'name' : 'dialogIframe'});
32    
33    // 2段階対応
34    var containerIdTmp = null;
35    var depth = null;
36    if (parent.window == window) {
37    	containerIdTmp = 'simplemodal-container1';
38    	depth = 1;
39    } else {
40    	containerIdTmp = 'simplemodal-container2';
41    	depth = 2;
42    }
43    if (navigator.userAgent.indexOf('iPhone') > 0
44            || navigator.userAgent.indexOf('iPad') > 0
45            || navigator.userAgent.indexOf('iPod') > 0 
46            || navigator.userAgent.indexOf('Android') > 0) {
47        if (parseInt(width, 10) > 500) {
48        	
49            isMobileFlg = true;
50            if (depth == 1) {
51        	    $('html,body').animate({ scrollTop : 0} , 0);
52                $('body').children().each(function () {
53                    allDivArrays1.push($(this));
54                    allDivArraysDisplay1.push($(this).css('display'));
55                    $(this).css('display', 'none');
56                });
57                modalDiv1 = $('<div id ="simplemodal-container1" width="100%" />');
58                modalDiv1.append(modalFrm);
59                $('body').append(modalDiv1);
60
61            } else {
62        	    $('html,body').animate({ scrollTop : 0} , 0);
63                $('body').children().each(function () {
64                    allDivArrays2.push($(this));
65                    allDivArraysDisplay2.push($(this).css('display'));
66                    $(this).css('display', 'none');
67                });
68                modalDiv2 = $('<div id ="simplemodal-container2" width="100%" />');
69                modalDiv2.append(modalFrm);
70                $('body').append(modalDiv2);
71            }
72
73        	modalFrm[0].width = "100%";
74            modalFrm.attr("src", "/portal/common/EOCCAK001_dialogstart.html/");
75            // ダイアログ内に指定ページを読み込む。
76            loadDialogContents(url, data, containerIdTmp);
77
78        	return false;
79        }
80    }
81
82    // モーダルを表示する。
83    $.modal(modalFrm, {
84        overlayCss:{
85            backgroundColor:"#000"
86        },
87        containerCss:{
88            backgroundColor:"#fff", 
89            borderColor:"#fff", 
90            height:(height + 5), 
91            padding:0, 
92            width:(width + 5)
93        },
94        containerId: containerIdTmp,
95        onShow: function (dialog) {
96            // ダイアログ表示時、画面最上層に表示されるようにz-indexを指定する。
97        	if (depth == 1) {
98                $('#' + containerIdTmp).css('z-index', '9800');        		
99        	} else if (depth == 2) {
100                $('#' + containerIdTmp).css('z-index', '9999');        		
101        	}
102            modalFrm.attr("src", "/portal/common/EOCCAK001_dialogstart.html/");
103            // ダイアログ内に指定ページを読み込む。
104            loadDialogContents(url, data, containerIdTmp);
105        },
106        overlayClose:false,
107        escClose:false,
108        autoResize:autoResizeFlg
109    });
110    return false;
111}
112
113function openDialogMobile(url, data, width, height, closeHandlerFunctionName) {
114	return openDialog(url, data, width, height, closeHandlerFunctionName, true);
115}
116
117/**
118 * ダイアログ内のダミーページに指定されたページを読み込みます。
119 * 
120 * @param url ダイアログに読み込むページのPath
121 * @param data ページ読み込み時に送信するデータ
122 */
123function loadDialogContents(url, data, containerIdTmp) {
124    // ダイアログ内のページ読み込みが完了していない場合、0.5秒後に再実行する。
125    if (!loadedFlg) {
126        setTimeout(function() {loadDialogContents(url, data, containerIdTmp);}, 500);
127        return;
128    }
129    // ダイアログ内のページに配置されたFormに指定されたパラメータを設定し、
130    // 指定ページの画面を読み込む。
131    var iframe = $('#' + containerIdTmp).find('iframe').get(0);
132    
133    if (iframe == null || typeof iframe === "undefined"
134    	|| iframe.contentWindow == null || typeof iframe.contentWindow === "undefined"
135    	|| !$.isFunction(iframe.contentWindow.setFormObj)) {
136    	// 読み込みが完了しなかった場合は、クローズ。
137    	$.modal.close();
138    	return;
139    }
140    
141    iframe.contentWindow.setFormObj(url, data);
142    return;
143}
144
145/**
146 * ダイアログ内の表示要素を取得します。
147 * 
148 * @returns ダイアログ表示内容のオブジェクト
149 */
150function getDialogContents() {
151    var documentObj = null;
152    // ダイアログのiframeより、表示内容を取得し、返却する。
153    if (parent.window == window) {
154        // 親画面から実行された場合、iframeからdocumentのjQueryオブジェクトを取得する。
155        documentObj = $('#simplemodal-container1').find('iframe').contents();
156    } else {
157    	var container = $('#simplemodal-container2');
158    	if (container) {
159    		documentObj = $('#simplemodal-container2').find('iframe').contents();
160    	} else {
161    		// 子画面から実行された場合、documentのjQueryオブジェクトを作成する。
162    		documentObj = $(document);
163    	}
164    }
165    return documentObj;
166}
167
168/**
169 * ダイアログ内のダミーページ読み込み済みフラグをtrueに設定します。
170 * 子ウィンドウのダミーページより実行されます。
171 * 
172 */
173function setLoadedFlg() {
174    // フラグをロード済みに変更する。
175    loadedFlg = true;
176}
177
178/**
179 * ダイアログを閉じます。
180 * 
181 * @param resultCd 任意の値
182 */
183function closeDialog(resultCd) {
184    try {
185	    // ダイアログを閉じる。
186	    if (parent.window == window) {
187	        // 親画面から実行された場合、closeDialogFunc関数を実行する。
188	        closeDialogFunc(resultCd);
189	    } else {
190	        // 親ウィンドウのcloseDialogFunc関数を実行する。
191	        parent.window.closeDialogFunc(resultCd);
192	    }
193    } catch (err) {} 
194    return false;
195}
196
197/**
198 * closeDialog関数から実行される内部関数
199 * コールバック関数実行後、ダイアログをクローズします。
200 * 
201 * @param resultCd 任意の値
202 */
203function closeDialogFunc(resultCd) {
204    // コールバック関数の作成する。
205    var dialogCloseEventHandler = new Function("resultCd",
206            closeHandlerName + "(resultCd);");
207    // コールバック関数の実行する。
208    dialogCloseEventHandler(resultCd);
209    // ダイアログ制御フラグの初期化する。
210    loadedFlg = false;
211    closeHandlerName = "";
212    if (modalDiv2 != null) {
213    	modalDiv2.remove();
214        modalDiv2 = null;
215        for (var i = 0; i < allDivArrays2.length; i++) {
216            allDivArrays2[i].css('display', allDivArraysDisplay2[i]);
217        }
218        allDivArrays2 = new Array();
219        allDivArraysDisplay2 = new Array();
220    } else if (modalDiv1 != null) {
221    	modalDiv1.remove();
222        modalDiv1 = null;
223        for (var i = 0; i < allDivArrays1.length; i++) {
224            allDivArrays1[i].css('display', allDivArraysDisplay1[i]);
225        }
226        allDivArrays1 = new Array();
227        allDivArraysDisplay1 = new Array();
228    }
229    
230    // ダイアログを閉じる。
231    $.modal.close();
232    return;
233}
234
235/**
236 * 自画面遷移にて更新処理を実行する際に、確認ダイアログを表示します。
237 */
238function checkSubmitDialog(message) {
239    return confirm(message);
240}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.