1

奇妙なエラーに遭遇しました。Google Earth ライブラリを読み込もうとしていますが、読み込もうとすると「ERR_CREATE_PLUGIN」というエラーが表示されます

次のコードは機能します。

<script src="http://www.google.com/jsapi"></script>
<script>
    google.load("earth", "1");

    var ge = null;

    function init() {
        google.earth.createInstance("map3d", initCallback, failureCallback);
    }

    function initCallback(object) {
        ge = object;
        ge.getWindow().setVisibility(true);
    }

    function failureCallback(object) {
    }
</script>
</head>
<body onload='init()' id='body'>
    <center>
        <div id='map3d'
            style='border: 1px solid silver; height: 600px; width: 800px;'></div>
    </center>
</body>

このコードはしませんが:

<script type="text/javascript">
  google.load("earth", "1");

    var ge = null;

    function initCallback(object) {
        ge = object;
        ge.getWindow().setVisibility(true);
    }

    function failureCallback(object) {
    }

    $(document).ready(function() {


        google.earth.createInstance("map3d", initCallback, failureCallback);    
    });
</script>
4

1 に答える 1

3

これが機能しない理由は、jquery が Google Earth API の前に読み込まれる可能性があるためです。

つまり、終了する前にgoogle.earth.createInstance()呼び出されます。jquery$(document).ready()google.load()

呼び出す前にすべてが正しくロードされていることを確認するには、メソッドを介してGoogle ローダーcreateInstance()から jquery と Earth API の両方をロードするだけです。そうすれば、メソッドを使用して、すべての準備が整ったことを知ることができます。すなわちgoogle.load()setOnLoadCallback

<script type="text/javascript" src="http://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
  google.load("jquery", "1"); 
  google.load("earth", "1"); 
  google.setOnLoadCallback(function() { 
    //Place init code here instead of $(document).ready()
    google.earth.createInstance("map3d", initCallback, failureCallback);   
  }); 

  // etc...
于 2013-11-15T09:58:12.557 に答える