1

我遇到了一个奇怪的错误。我正在尝试加载 Google 地球库,但这样做时出现错误“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 。这样,您就可以使用该方法来了解一切准备就绪的时间。IEgoogle.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 回答