1

このように自分でスクリプトをリンクすると:

<script src="dist/js/osm/leaflet.js" type="text/javascript"></script>

すべて正常に動作します。しかし、次のようにスクリプトを動的にロードしたい場合:

$.ajax({
    type: "GET",
    url: "dist/js/osm/leaflet.js",
    dataType: "script",
    async: false
});

地図は表示されますが、表示されるべきすべてのマーカーが表示されません。ご覧のとおり、私も試しました

async: false

しかし、それは問題を解決しません。

注: 自分で書いた 2 つ目のスクリプトも読み込みますが、動的に読み込まれると問題なく動作します。前に述べたように、機能しない唯一のことは、表示されたマップにマーカーを追加することです。

これで私を助けてください、前もって感謝します。

4

1 に答える 1

7

このようにリーフレットを動的にロードすると、どこからロードされたのかがわからないため、マーカーアイコンの正しいURLを判別できません。その理由は、scriptリーフレットをロードしたタグを検索して、ロード元のパスを特定し、このようにAJAXを使用してロードするscriptと、見つけるタグがないためです。

これを回避するL.Icon.Default.imagePathには、リーフレットが読み込まれた後、マーカーを作成する前に、リーフレット画像のベースURLを設定します。

于 2013-02-05T09:24:06.860 に答える