gpt4 book ai didi

javascript - 如何使用 Javascript 在 iframe 中加载 Google map ?

转载 作者:行者123 更新时间:2023-11-29 17:15:47 26 4
gpt4 key购买 nike

我在 iframe 中加载 Google map 时遇到问题。我想做something like this ,但在 iframe 中。我尝试过不同的方式:

尝试在加载脚本之前调用 showNewMap() 函数。但我收到以下错误:未捕获类型错误:对象 [全局对象] 没有方法 'showNewMap':http://jsfiddle.net/9RE4h/1/

var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
var doc = iframe.contentWindow || iframe.contentDocument;
if (doc.document) { doc = doc.document;}

function showNewMap() {

var mapContainer = doc.createElement('div');
mapContainer.setAttribute('style',"width: 500px; height: 300px");
doc.body.appendChild(mapContainer);

var mapOptions = {
center: new google.maps.LatLng(-35.000009, -58.197645),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(mapContainer,mapOptions);
}

var script = doc.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&' + 'callback=showNewMap';
doc.getElementsByTagName('head')[0].appendChild(script);

有解决问题的办法吗?

最佳答案

兼容 Firefox-Google Crome:

var iframe = document.createElement("iframe");
iframe.onload = function() {
var doc = iframe.contentDocument;

iframe.contentWindow.showNewMap = function() {
var mapContainer = doc.createElement('div');
mapContainer.setAttribute('style',"width: 500px; height: 300px");
doc.body.appendChild(mapContainer);

var mapOptions = {
center: new this.google.maps.LatLng(-35.000009, -58.197645),
zoom: 5,
mapTypeId: this.google.maps.MapTypeId.ROADMAP
}

var map = new this.google.maps.Map(mapContainer,mapOptions);
}

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&' + 'callback=showNewMap';
iframe.contentDocument.getElementsByTagName('head')[0].appendChild(script);
};
document.body.appendChild(iframe);

fiddle :http://jsfiddle.net/gS7sZ/1/

关于javascript - 如何使用 Javascript 在 iframe 中加载 Google map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18190813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com