我有一个浏览器插件的想法,该插件可以操纵第三方站点上的Leaflet地图。但是,我很简单:我不确定如何在页面上发现Leaflet映射DOM元素,然后访问关联的Leaflet map
对象。
$('.leaflet-container')
是查找所有地图对象的可靠方法吗?
如何从该对象实际访问map
对象,所以我可以做类似的事情:$('.leaflet-container').eachLayer(...)
,这不起作用。
此问题与How can I get a leaflet.js instance using only a DOM object?本质上相同,但答案是没有解决方法,无济于事。
在旁注中,我认为您应该让代码的用户明确地将引用传递给您,而不是尝试自动查找引用。例如,参见inversion of control principle,其中调用方提供了相关性。 Law of Demeter在某种程度上也适用-请勿窥探其他代码内部结构(除非您确实必须如此)。
好,所以这是一个可行的解决方案,但它很脆弱且受限制。如果您有一种方法可以更直接地找到参考,那是理想的。