0

私は、HTML を使用して Boilerplate 3 にインポートされている Google マップのかなり些細な適応を行っています。キーを有効にする必要がありますか? (もしそうなら、何らかの形式のより有益なエラー メッセージが表示されると思います。) 私のコードで空白の画面が表示されます。コードは次のとおりです。

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title></title>
  <meta name="description" content="">

  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="css/style.css">

  <script src="js/libs/modernizr-2.5.3.min.js"></script>
  <style type="text/css">
    html { height: 100% }
    body { height: 100%; margin: 0; padding: 0 }
    #map_canvas { height: 100%, width: 100% }
  </style>
</head>
<body>
  <!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em> <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]-->
  <header>

  </header>
  <div role="main">

    <div id="map_canvas">
    </div>

  </div>
  <footer>

  </footer>


  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>

  <script src="js/plugins.js"></script>
  <script src="js/script.js"></script>

<script>


function initialize()
    {
    var myoptions = {
        zoom: 4,
        center: new google.maps.LatLng(42.881944, -87.627778),
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };
    var map = new google.maps.Map(jQuery('#map_canvas')[0],
    myoptions);


    }

function load_script()
    {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://maps.google.com/maps/api/js?key=AIzaSyAi288X8h9Y4fXM21Q0-my6O6kiLaDeC7M&sensor=false&callback=initialize";
    document.body.appendChild(script);
    }

jQuery(function()
    {
    initialize();
    load_script();
    });
</script>
</body>
</html>
4

1 に答える 1

2

ボイラープレートが何をするかわからないので、投稿されたソースにできる限りの変更を加えました:

(1) #map_canvas スタイルで、後にカンマをセミコロンに変更height: 100%

(2) の divrole="main"も必要なheight: 100%ので、id をwrapper付けて適切なスタイルを追加しました

(3) jQuery インクルードはhttp:URL の前に

(4)に示すスクリプト インクルードはhasであるためinitialize、最後の関数呼び出し内での呼び出しは不要です。とにかく、マップ JS を含める前にマップ コードを呼び出しても機能しません。jQueryload_scriptcallback=initialize

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title></title>
  <meta name="description" content="">

  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="css/style.css">

  <script src="js/libs/modernizr-2.5.3.min.js"></script>
  <style type="text/css">
    html { height: 100% }
    body { height: 100%; margin: 0; padding: 0 }
    #wrapper { height: 100%; width: 100% }
    #map_canvas { height: 100%; width: 100% }
  </style>
</head>
<body>
  <!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em> <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]-->
  <header>

  </header>
  <div role="main" id="wrapper">

    <div id="map_canvas">
    </div>

  </div>
  <footer>

  </footer>


  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>

  <script src="js/plugins.js"></script>
  <script src="js/script.js"></script>

<script>


function initialize()
    {
    var myoptions = {
        zoom: 4,
        center: new google.maps.LatLng(42.881944, -87.627778),
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };
    var map = new google.maps.Map(jQuery('#map_canvas')[0],
    myoptions);


    }

function load_script()
    {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://maps.google.com/maps/api/js?key=AIzaSyAi288X8h9Y4fXM21Q0-my6O6kiLaDeC7M&sensor=false&callback=initialize";
    document.body.appendChild(script);
    }

jQuery(function()
    {
    load_script();
    });
</script>
</body>
</html>
于 2012-06-27T17:56:09.243 に答える