我觉得这是一个相当简单的代码,而在iframe中运行的代码被视为来自Google Map的文档的示例代码,因此它与iframe有关,但我不确定。< / p>
简而言之,我正在创建一个iframe,将Google Maps JS API放在那里,然后将一个函数加载到其中,该函数包含来自其文档的地图示例。我得到了
Uncaught TypeError: Cannot call method 'addDomListener' of undefined
这是JSBin链接:http://jsbin.com/ucovaj/1
答案 0 :(得分:4)
调查控制台会告诉你这样的事情:
忽略了从异步加载的外部脚本调用document.write()
您无法异步加载default-maps-script,因为它使用了document.write()
文档加载完成后无法使用的内容。
在这种情况下,您必须通过向网址添加callback-parameter来加载特殊版本(有关详细信息,请参阅https://developers.google.com/maps/documentation/javascript/tutorial#Loading_the_Maps_API)
答案 1 :(得分:1)
我只是简单一下,但是您在重新定义地图时出现错误:
var Map = function (opts) {
这是否需要称为Map?也许是myMap。
答案 2 :(得分:0)
我在使用Google Maps JavaScript API v3和Hello World示例时出现了类似的错误,正如在教程页面中所说,我添加了这样的api:
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key={API_KEY}&sensor=SET_TO_TRUE_OR_FALSE">
</script>
但是它给了我这篇文章标题中的消息,经过一些调查我发现,在工作样本中,在api的url的查询字符串部分中传递了另一个参数,这是版本的v,它不是'提到它是必需的,但添加v=3.exp
使它工作。
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=xxxxxxxxx&sensor=false">
</script>
我希望能节省宝贵的时间。
答案 3 :(得分:0)
事件在函数之前生成且无法识别, 你改变了这段代码:
$(document).ready(function() {
google.maps.event.addDomListener(window, 'load', initialize);
});
代码:
$(window).load(function(){
google.maps.event.addDomListener(window, 'load', initialize);
});