1

だから私は湖のページでモバイルアプリを作ろうとしています。ボタンのリンクをクリックして、地図が表示されているページに移動できるようにしたいと思います。これはすべてJquerymobileで行われ、外部ページは必要ありません。(「#map-page」のように)

私は一般的に働きたいコードを実行しました。しかし、クリックイベントで開始する限り、私は運がありませんでした。私は複数の例などを経験してきました。ページを表示しているときに地図を読み込んで、モバイルアプリが大量の地図を読み込む必要がないようにします。

jsFiddleで例を作成しました。

http://jsfiddle.net/Ajfvr/

したがって、onloadプロパティを使用してロードする代わりに、ページへのリンクをクリックすると、別のネストされたページ(フルスクリーン)にロードする必要があります。したがって、jsはリンクをクリックするまで開始されません。

<3ありがとうございます。

コード:

<!DOCTYPE html>
<html>    
  <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <script type="text/javascript" src="../jquery/jquery-1.4.4.min.js"></script>        
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3&sensor=false&language=en"></script>
    <script type="text/javascript" src="../cordova-2.3.0.js"></script>
        <style>
      html, body, #map_canvas {
        margin: 0;
        padding: 0;
        height: 100%;
      }
    </style>

<script type="text/javascript">
    function detectBrowser() {
    var useragent = navigator.userAgent;
    var mapdivMap = document.getElementById("map_canvas");

    if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
        mapdivMap.style.width = '100%';
        mapdivMap.style.height = '100%';
        initialize();
    } else {
        mapdivMap.style.width = '600px';
        mapdivMap.style.height = '800px';
        initialize();
        }
    };

    function initialize() {
        var mapOptions = {
        zoom: 8,
        center: new google.maps.LatLng(43.464258,-80.52041),
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById('map_canvas'),
            mapOptions);

        var marker = new google.maps.Marker({
            position: map.getCenter(),
            map: map,
            title: 'Waterloo'
        });
    }

      google.maps.event.addDomListener(window, 'load', detectBrowser);
    </script> 
  </head>
  <body onload="detectBrowser()">
    <div id="map_canvas"></div>
  </body>
</html>
4

1 に答える 1

1

あなたの質問から私が理解していることは、あなたが完全に新しいページに地図をロードしたいということです。または、同じページにマップをロードしたいが、マップのロードを遅らせたい場合は、ボタンをクリックするだけで関数を呼び出し、Javascriptを使用してオーバーレイDIVにマップをロードできます。

jQuery Mobileには、ページをプリフェッチ(事前にロード)する方法があります。事前にマップをロードしようとしている場合は、それも調べることができます。

于 2013-02-11T06:44:43.100 に答える