2

DotNetNukeCMSを使用するWebサイトに取り組んでいます。APIを使用してGoogleマップマップを追加しましたが、ページが読み込まれたときにinitialize()関数を呼び出す必要があります。通常、これは次の方法で行います。

<body onload="initialize()">

または、</body>タグの直前に次を追加します。

<script type="text/javascript">
    window.onload = function () {
        initialize();
    }
</script>

ただし、bodyタグ、またはタグの正確な終わりにはアクセスできません。上記を行わずにこの関数を呼び出す他の方法はありますか?

4

3 に答える 3

6

ウィンドウの読み込みイベントでこれを行うのはお勧めできません。高遅延の画像やその他のアセットの読み込みがある場合、Google マップの読み込みが非常に遅くなります。body タグの直前に、これを追加します。

<script>
 initialize();
</script>

Google がマップを作成する前に準備する必要があるのは DOM だけであり、ページ上のすべてのアセットではありません。DOM は、body タグの終了直前にスクリプトが読み込まれるまでに、常に完全に読み込まれます。

編集

技術的には、マップを作成する前に Google マップを準備する必要があるのは、それが配置される div だけです。したがって、body 終了タグの前にスクリプトを配置する必要さえありません。直後に配置できます。次のようなマップの div タグ:

<html>
...
<body>
...html...

<div id="map-canvas"></div>
<script>initialize();</script>


...more html
</body>

于 2013-03-14T14:10:03.677 に答える
5

ランダムに何かを試していたとき、私は理解しました。ヘッダーに以下を追加する事項。ロングライブAPIV3!

<script type="text/javascript">
    google.maps.event.addDomListener(window, 'load', initialize);
</script>
于 2013-03-14T14:05:54.780 に答える
1

次の方法でも呼び出すことができます

    <div id="map-canvas"></div>

    $("#map-canvas").on("load", function () {
       initialize();            
    });
于 2013-03-14T14:20:19.850 に答える