Get OpenStreetMap Leaflet object

Get the Leaflet object of OpenStreetMap's website

As of 01. 09. 2025. See the latest version.

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyforks.org/scripts/533461/1652652/Get%20OpenStreetMap%20Leaflet%20object.js

// ==UserScript==
// @name        Get OpenStreetMap Leaflet object
// @match       *://www.openstreetmap.org/*
// @match       *://www.opengeofiction.net/*
// @match       *://opengeofiction.net/*
// @version     1.0
// @author      CyrilSLi
// @description Get the Leaflet object of OpenStreetMap's website
// @license     MIT
// ==/UserScript==

unsafeWindow.userscriptMap = null;
const callbacks = [];
unsafeWindow.onOSMReady = function (fn) {
    if (typeof fn === 'function') {
        if (unsafeWindow.userscriptMap) {
            fn();
        } else {
            callbacks.push(fn);
        }
    } else {
        throw new Error("Parameter is not a function");
    }
};

if (typeof L !== "undefined" && typeof L.Map !== "undefined") {
    L.Map.addInitHook(function () {
        if (this._container && this._container.id === "map") {
            unsafeWindow.userscriptMap = this;
            while (callbacks.length > 0) {
                callbacks.shift()();
            }
        }
    });
}
长期地址
遇到问题?请前往 GitHub 提 Issues。