2013-11-14 4 views
1

Я столкнулся с странной ошибкой. Я пытаюсь загрузить библиотеки Google Earth, но при этом я получаю сообщение об ошибке «ERR_CREATE_PLUGIN»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> 

ответ

3

Причина, по которой это не будет работать, заключается в том, что jQuery может загружаться до API Google Планета Земля.

Это google.earth.createInstance() получает jquery в $(document).ready() до google.load() закончен.

Для того, чтобы все было правильно загружено до вызова createInstance() - просто загрузите как jQuery, так и землю api из Google loader с помощью метода 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... 

 Смежные вопросы

  • Нет связанных вопросов^_^