回答編集履歴

1

コメントを受けて追加修正

2018/01/11 13:06

投稿

sousuke
sousuke

スコア3828

test CHANGED
@@ -13,3 +13,133 @@
13
13
  map_area.appendChild(map_js);
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ 私はできましたが…initMapをclickのコールバックに書いたままではありませんか?
20
+
21
+ 提示のサンプルではinitMapはグローバルから見えてないと思います。
22
+
23
+ ```html
24
+
25
+ <!DOCTYPE html>
26
+
27
+ <html lang="ja">
28
+
29
+ <head>
30
+
31
+ <meta charset="UTF-8">
32
+
33
+ <title>address api</title>
34
+
35
+ <meta name="description" content="web api weather">
36
+
37
+ <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=yes">
38
+
39
+ <style type="text/css">
40
+
41
+ #map{width: 500px;height: 500px;}
42
+
43
+ </style>
44
+
45
+ </head>
46
+
47
+ <body>
48
+
49
+
50
+
51
+ <div id="map"></div>
52
+
53
+
54
+
55
+ <button id="btn_map">map</button>
56
+
57
+
58
+
59
+ <div id="map_area"></div>
60
+
61
+
62
+
63
+ </body>
64
+
65
+ </html>
66
+
67
+
68
+
69
+ <script>
70
+
71
+ function initMap() {
72
+
73
+ var myLatLng = {lat: 35.6920455, lng: 139.7292123};
74
+
75
+
76
+
77
+ var map = new google.maps.Map(document.getElementById('map'), {
78
+
79
+ zoom: 8,
80
+
81
+ center: myLatLng
82
+
83
+ });
84
+
85
+
86
+
87
+ var marker = new google.maps.Marker({
88
+
89
+ position: myLatLng,
90
+
91
+ map: map,
92
+
93
+ title: 'Hello World!'
94
+
95
+ });
96
+
97
+
98
+
99
+ }
100
+
101
+
102
+
103
+ //ボタンidを取得
104
+
105
+ var button_map = document.getElementById("btn_map");
106
+
107
+ //ボタンをクリックした場合発動
108
+
109
+ button_map.addEventListener("click",function(){
110
+
111
+
112
+
113
+ //問題なくコンソールに表示されます
114
+
115
+ console.log("OK");
116
+
117
+
118
+
119
+   //scriptタグ追加エリアのidを取得
120
+
121
+ var map_area = document.getElementById("map_area");
122
+
123
+ var map_js = document.createElement('script');
124
+
125
+ map_js.type = 'text/javascript';
126
+
127
+ map_js.src = "https://maps.googleapis.com/maps/api/js?key=AIzaSyDSCHWLpdeARXPbY5m4tGmyTk80YG_3agA&callback=initMap"
128
+
129
+ map
130
+
131
+ map_area.appendChild(map_js);
132
+
133
+ });
134
+
135
+ //問題なくコンソールに表示されます
136
+
137
+ console.log("OKOK");
138
+
139
+
140
+
141
+ </script>
142
+
143
+
144
+
145
+ ```