【问题标题】:Get Instance of Google Maps Object Using JQuery使用 JQuery 获取 Google Maps 对象的实例
【发布时间】:2016-05-19 07:33:28
【问题描述】:
我正在考虑编写一个函数,该函数在调用时将使用 JQuery 在页面if 上获取Google Maps object 的实例。
例如,如果页面上确实有一个地图,它看起来像这样:
<div class="map">....</div>
因此访问 包含 地图的 div 非常简单。即$('.map');。但是你如何转换它,使它实际上是 Google Map Class 类型,然后能够调用它的函数并访问属性?
【问题讨论】:
标签:
javascript
jquery
html
google-maps
google-maps-api-3
【解决方案1】:
您不能,除非创建 Google 地图对象的 JavaScript 代码让您非常轻松。
Google Maps 对象完全独立于用于显示它的 DOM 元素。鉴于访问其 DOM 元素或使用 jQuery,无法反向访问 JavaScript 对象。 (即使可以,寻找带有“地图”类的div 也不一定有成效,因为地图的 DOM 元素可以有任意的类名和 ID。)
为了访问 Google Maps JavaScript 对象,您必须能够获取对实例化 Google Maps 对象的变量的引用。 唯一可行的方法是,如果对象位于全局命名空间中的某个位置,您可以访问它。而且即便如此您也需要手动扫描整个全局命名空间以尝试找到有效的 Map,或者提前知道变量所在的位置。
Snazzymaps.com 是一个我知道 Google Map 对象已添加到全局命名空间的示例。 In the map editor,可通过window.editor.map 访问。但是,您绝对不能指望野外的每个 Google 地图都可以访问。它们可能是私有变量,在闭包或匿名函数中等等。所以不要赌它。