我正在考虑编写一个函数,当被调用时,将使用JQuery在页面上获取Google Maps object的实例,如果存在一个实例。
例如,如果页面上确实有一个Map,它看起来像这样:
<div class="map">....</div>
因此,访问包含地图的div 非常容易。即$('.map');
。但是,你如何投射它以使其实际上是Google Map Class类型,然后能够调用它上面的函数并访问属性?
答案 0 :(得分:3)
除非创建Google Map对象的JavaScript代码使您 非常容易
,否则无法使用。 Google Maps对象完全独立于用于显示它的DOM元素。由于可以访问其DOM元素或使用jQuery,因此无法反向访问JavaScript对象。 (即使你可以,找一个带有&#34; map&#34;类的div
也不一定会有成果,因为地图的DOM元素可以有任意的类名和ID。 )
要访问Google Maps JavaScript对象,您必须能够获取实例化Google Maps对象的变量引用。 的唯一方法是,如果对象位于全局命名空间中的某个位置,您可以访问它。而即便如此您需要手动扫描整个全局命名空间以尝试查找有效的Map,或提前知道变量所在的位置。
Snazzymaps.com就是我所知道的Google Map对象已添加到全局命名空间的示例。 In the map editor,可以window.editor.map
访问。null
。但是,您绝对不能指望每个谷歌地图都可以访问。它们可能是一个私有变量,在闭包或匿名函数中等等。所以不要赌它。