teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

11

2021/09/03 15:37

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
File without changes

10

2021/09/03 15:37

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
File without changes

9

文法修正

2021/09/03 15:36

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  ### 発生している問題・エラーメッセージ
6
6
 
7
7
  ```
8
- Cannot read property ‘ret.status’ of undefined
8
+ window.opener[callback_id] is not a function
9
9
  ```
10
10
 
11
11
  ### 該当のソースコード
@@ -23,9 +23,21 @@
23
23
  //変更ボタン押下時の処理
24
24
  function ButtonClick(){
25
25
 
26
+
27
+ var callback_id = 'callback_modal';
28
+ window[callback_id] = function(ret) {
29
+
30
+ //trueが表示されることを確認
31
+ alert(ret.status);
32
+ return ret ? ret : {"status":false };
33
+
34
+ }
35
+
26
36
  //子画面ウインドウを開く
27
- var ret = openChild("子画面.html");
37
+ //var ret = openChild("子画面.html");
38
+ var ret = openChild("子画面.html",window[callback_id]);
28
39
 
40
+
29
41
  //(ここ処理が通るのを確認したい)
30
42
  if(ret.status) {
31
43
  alert(ret.status);
@@ -40,27 +52,31 @@
40
52
  小画面から親画面に値渡し.js
41
53
 
42
54
  //モーダル画面呼び出し
55
+ //function openChild(url) {
43
- function openChild(url) {
56
+ function openChild(url,callback) {
44
- return openDialog(url,900,680);
57
+ return openDialog(url,900,680,callback);
45
58
  }
46
59
 
60
+ //function openDialog(url,width,height){
47
- function openDialog(url,width,height){
61
+ function openDialog(url,width,height,callback){
48
62
 
63
+
49
- var callback_id = 'callback_modal';
64
+ //var callback_id = 'callback_modal';
50
- window[callback_id] = function(ret) {
65
+ //window[callback_id] = function(ret) {
51
66
 
52
- //trueが表示されることを確認
67
+ ////trueが表示されることを確認
53
- alert(ret.status);
68
+ //alert(ret.status);
54
- return ret ? ret : {"status":false };
69
+ //return ret ? ret : {"status":false };
55
70
 
56
- }
71
+ //}
57
72
 
58
73
    //小画面呼び出し
59
- window.open(url, callback_id,
74
+ var ret window.open(url, callback,
60
75
     "dialogWidth:" + width + "px;" +
61
76
    "dialogHeight:" + height + "px;" +
62
- "center:yes; scroll:no;")
77
+ "center:yes; scroll:no;");
63
78
 
79
+ return ret;
64
80
  }
65
81
 
66
82
  ```

8

2021/09/03 09:08

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,6 @@
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```親画面.html
14
-
15
14
  親画面.html
16
15
 
17
16
  <script type="text/javascript" src="子画面から親画面に値渡し.js"></script>
@@ -38,7 +37,6 @@
38
37
 
39
38
 
40
39
  ```子画面から親画面に値渡し.js
41
-
42
40
  小画面から親画面に値渡し.js
43
41
 
44
42
  //モーダル画面呼び出し
@@ -68,7 +66,6 @@
68
66
  ```
69
67
 
70
68
  ```子画面.html
71
-
72
69
  小画面.html
73
70
 
74
71
  <input type="button" value="確定"

7

2021/09/02 23:43

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,6 @@
12
12
 
13
13
  ```親画面.html
14
14
 
15
-
16
15
  親画面.html
17
16
 
18
17
  <script type="text/javascript" src="子画面から親画面に値渡し.js"></script>
@@ -40,7 +39,6 @@
40
39
 
41
40
  ```子画面から親画面に値渡し.js
42
41
 
43
-
44
42
  小画面から親画面に値渡し.js
45
43
 
46
44
  //モーダル画面呼び出し
@@ -71,7 +69,6 @@
71
69
 
72
70
  ```子画面.html
73
71
 
74
-
75
72
  小画面.html
76
73
 
77
74
  <input type="button" value="確定"

6

2021/09/02 23:42

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -10,8 +10,11 @@
10
10
 
11
11
  ### 該当のソースコード
12
12
 
13
- ```親画面.html
13
+ ```親画面.html
14
14
 
15
+
16
+ 親画面.html
17
+
15
18
  <script type="text/javascript" src="子画面から親画面に値渡し.js"></script>
16
19
  <meta charset="UTF-8">
17
20
  <body>
@@ -37,6 +40,9 @@
37
40
 
38
41
  ```子画面から親画面に値渡し.js
39
42
 
43
+
44
+ 小画面から親画面に値渡し.js
45
+
40
46
  //モーダル画面呼び出し
41
47
  function openChild(url) {
42
48
  return openDialog(url,900,680);
@@ -65,6 +71,9 @@
65
71
 
66
72
  ```子画面.html
67
73
 
74
+
75
+ 小画面.html
76
+
68
77
  <input type="button" value="確定"
69
78
  onClick="ButtonClick()">
70
79
  <meta charset="UTF-8">

5

2021/09/02 23:41

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -42,7 +42,7 @@
42
42
  return openDialog(url,900,680);
43
43
  }
44
44
 
45
- function openDialog(url,width,height) {
45
+ function openDialog(url,width,height){
46
46
 
47
47
  var callback_id = 'callback_modal';
48
48
  window[callback_id] = function(ret) {
@@ -57,7 +57,7 @@
57
57
  window.open(url, callback_id,
58
58
     "dialogWidth:" + width + "px;" +
59
59
    "dialogHeight:" + height + "px;" +
60
- "center:yes; scroll:no;")
60
+ "center:yes; scroll:no;")
61
61
 
62
62
  }
63
63
 

4

2021/09/02 23:39

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -25,7 +25,7 @@
25
25
  //子画面ウインドウを開く
26
26
  var ret = openChild("子画面.html");
27
27
 
28
- //変数retにステータス値が格納されていることを確認(ここのアラート処理が通るのを確認したい)
28
+ //(ここ処理が通るのを確認したい)
29
29
  if(ret.status) {
30
30
  alert(ret.status);
31
31
  }
@@ -37,12 +37,11 @@
37
37
 
38
38
  ```子画面から親画面に値渡し.js
39
39
 
40
- //画面呼び出し
40
+ //モーダル画面呼び出し
41
41
  function openChild(url) {
42
42
  return openDialog(url,900,680);
43
43
  }
44
44
 
45
- //モーダル画面呼び出し
46
45
  function openDialog(url,width,height) {
47
46
 
48
47
  var callback_id = 'callback_modal';
@@ -50,12 +49,16 @@
50
49
 
51
50
  //trueが表示されることを確認
52
51
  alert(ret.status);
53
- return ret ? ret : {"status":false };
52
+ return ret ? ret : {"status":false };
53
+
54
54
  }
55
+
56
+   //小画面呼び出し
55
57
  window.open(url, callback_id,
56
58
     "dialogWidth:" + width + "px;" +
57
59
    "dialogHeight:" + height + "px;" +
58
60
  "center:yes; scroll:no;")
61
+
59
62
  }
60
63
 
61
64
  ```

3

2021/09/02 23:37

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -49,9 +49,9 @@
49
49
  window[callback_id] = function(ret) {
50
50
 
51
51
  //trueが表示されることを確認
52
- alert(ret.status);
52
+ alert(ret.status);
53
- return ret ? ret : {"status":false };
53
+ return ret ? ret : {"status":false };
54
- }
54
+ }
55
55
  window.open(url, callback_id,
56
56
     "dialogWidth:" + width + "px;" +
57
57
    "dialogHeight:" + height + "px;" +
@@ -80,8 +80,6 @@
80
80
 
81
81
 
82
82
 
83
- ```
84
-
85
83
  ### 試したこと
86
84
  https://qiita.com/hidehito108/items/f7ad9fe23736049a76d6
87
85
  上記のサイトを参考にして、作業してみたのですがうまくいかず

2

2021/09/02 23:29

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -22,20 +22,22 @@
22
22
  //変更ボタン押下時の処理
23
23
  function ButtonClick(){
24
24
 
25
- //子画面ウインドウを開く
25
+ //子画面ウインドウを開く
26
- var ret = openChild("子画面.html");
26
+ var ret = openChild("子画面.html");
27
27
 
28
-    //変数retにステータス値が格納されていることを確認(ここのアラート処理が通るのを確認したい)
28
+ //変数retにステータス値が格納されていることを確認(ここのアラート処理が通るのを確認したい)
29
- if(ret.status) {
29
+ if(ret.status) {
30
- alert(ret.status);
30
+ alert(ret.status);
31
- }
32
31
  }
32
+ }
33
33
  </script>
34
34
 
35
+ ```
35
36
 
36
- 子画面から親画面に値渡し.js
37
37
 
38
+ ```子画面から親画面に値渡し.js
39
+
38
- //引数のURLで指定のモーダル画面呼び出
40
+ //画面呼び出
39
41
  function openChild(url) {
40
42
  return openDialog(url,900,680);
41
43
  }
@@ -43,21 +45,28 @@
43
45
  //モーダル画面呼び出し
44
46
  function openDialog(url,width,height) {
45
47
 
46
- var callback_id = 'callback_modal';
48
+ var callback_id = 'callback_modal';
47
- window[callback_id] = function(ret) {
49
+ window[callback_id] = function(ret) {
48
50
 
49
- //アラート関数で親画面にtrueが表示されることを確認
51
+ //trueが表示されることを確認
50
- alert(ret.status);
52
+ alert(ret.status);
51
53
  return ret ? ret : {"status":false };
52
54
  }
55
+ window.open(url, callback_id,
56
+    "dialogWidth:" + width + "px;" +
53
- window.open(url, callback_id, "dialogWidth:" + width + "px;" + "dialogHeight:" +            height + "px; center:yes; scroll:no;")
57
+   "dialogHeight:" + height + "px;" +
58
+ "center:yes; scroll:no;")
54
59
  }
55
60
 
56
- 子画面.html
61
+ ```
57
62
 
63
+ ```子画面.html
64
+
58
- <input type="button" value="確定" onClick="ButtonClick()">
65
+ <input type="button" value="確定"
66
+ onClick="ButtonClick()">
59
67
  <meta charset="UTF-8">
60
68
  <script type="text/javascript">
69
+
61
70
  //確定ボタン押下時
62
71
  function ButtonClick(){
63
72
  var ret = { "status" : true };
@@ -67,10 +76,10 @@
67
76
 
68
77
  </script>
69
78
 
79
+ ```
70
80
 
71
81
 
72
82
 
73
-
74
83
  ```
75
84
 
76
85
  ### 試したこと

1

2021/09/02 23:27

投稿

gapmjgmpt
gapmjgmpt

スコア3

title CHANGED
File without changes
body CHANGED
@@ -10,8 +10,7 @@
10
10
 
11
11
  ### 該当のソースコード
12
12
 
13
- ```
14
- 親画面.html
13
+ ```親画面.html
15
14
 
16
15
  <script type="text/javascript" src="子画面から親画面に値渡し.js"></script>
17
16
  <meta charset="UTF-8">