我想創建一個使用javascript的div來放入我的谷歌地圖。 它創建一個div,但沒有把地圖api放進去。請幫忙。創建要插入API的元素
0
A
回答
0
在運行代碼之前,您需要確保Google Maps API腳本已加載。目前,您正在嘗試在瀏覽器下載地圖API之前構建地圖。
解決這個問題的最簡單的方法是將您的HTML改成這樣:
<script src="https://maps.googleapis.com/maps/api/js?key="Entered key here deleted it for stackoverflow"&callback=initMap">
<script src="javascript.js"></script>
您也可以刪除谷歌地圖腳本標記和使用jQuery的$.getScript()
或使用https://github.com/filamentgroup/loadJS純JS在javascript.js
動態加載,運行你的代碼作爲回調。
0
initMap
在腳本加載時觸發,但在你點擊p
標記之前create
沒有被調用。這裏有一個方法來解決這個問題,但仍等待腳本允許點擊之前加載:
var mapready = false, createcalled = false;
function create()
{
createcalled = true;
if(mapready){
var newDiv = document.createElement("map");
newDiv.id = "map";
newDiv.style.border="solid";
document.body.appendChild(newDiv);
var uluru = {lat: 54.278556, lng: -8.460095};
var map = new google.maps.Map(document.getElementById('map'), {zoom: 16,center: uluru});
var marker = new google.maps.Marker({position: uluru,map: map});
}
}
function initMap()
{
mapready = true;
if(createcalled) create();
}
在這種情況下,如果用戶點擊了p
標記之前的地圖是準備,只要地圖API完成加載,create函數就會觸發。
相關問題
- 1. Angular 2將DOM插入到由Google Maps V3 api創建的InfoWindow元素中
- 2. JQuery的:插入到新創建的元素
- 3. 插入數組mongoose中的元素在NodeJS中創建Object
- 4. 使用jQuery插入新創建的表格元素
- 5. 創建可插入元素的jQuery數組
- 6. 插入元素 - 必要時拆分其他元素
- 7. Ninject注入的元素,當我創建
- 8. 創建元素
- 9. 插入元素,Y
- 10. LINQ插入元素
- 11. 插入現有元素並創建一個
- 12. 初始創建後向Groovy MarkupBuilder對象添加/插入元素
- 13. android sqlite - 實例化創建插入搜索元素
- 14. 想要創建一個插入函數
- 15. 返回插入的元素
- 16. 在新創建的視頻元素中創建/刪除元素
- 17. Javascript創建了太多輸入元素
- 18. 從用戶輸入創建XML元素
- 19. 創建元素並追加輸入值
- 20. 創建DOM元素
- 21. 創建HTML元素
- 22. 創建slopy元素
- 23. 創建對象並傳入元素,讓元素沒有定義
- 24. jQuery的DOM元素創建
- 25. 創建獨特的元素
- 26. 創建新的XML元素
- 27. 在空元素周圍創建元素
- 28. 在列表中創建元素以創建元素
- 29. WebDriver:想要獲得使用@ FindBy創建的元素的子元素
- 30. vb.net-如何創建(插入元素)數組,但不應該重複輸入元素?