Иногда происходит сбой инициализации подключаемого модуля Google Планета Земля в IE10

Это мой код для инициализации плагина Google Earth.

Иногда происходит сбой инициализации подключаемого модуля Google Планета Земля в IE10 (у меня он в режиме совместимости) Стандарты IE7. Эта ошибка возникает только в IE и ни в каком другом браузере.

В 90% случаев метод createInstance() создает экземпляр плагина Google Earth, и управление переходит к методу mygeeEarthPluginInitCb(), но несколько раз в основном после перезапуска машины или после нескольких часов бездействия, если я загружаю страницу. ) метод.

Это вызывает страницу ошибки, очень прерывистую.

    function geeInit() {
        alert("google.earth.createInstance : Start");
        google.earth.createInstance(geeDivIds.map, mygeeEarthPluginInitCb,
                geeEarthPluginFailureCb, earthArgs);
        alert("google.earth.createInstance : End");
    }

    function mygeeEarthPluginInitCb(object) {
        alert("Success mygeeEarthPluginInitCb: Inside");
        geeEarthPluginInitCb(object);
        gex = new GEarthExtensions(ge);
        createSearchResultsMarkers(null, 'results');
        var lookAt = ge.createLookAt('');
        lookAt.setLongitude(Number('-73.784190'));
        lookAt.setLatitude(Number('42.643446'));
        lookAt.setRange(25000.00);
        ge.getView().setAbstractView(lookAt);
        initRadSearchValsOnLoad();
    }

    function geeEarthPluginFailureCb(message) {
        alert("Failure geeEarthPluginFailureCb: Inside" + message);
        if (google.earth.isInstalled()) {

        } else {
            var result = confirm('Google Earth Plugin is not'
                    + ' installed.Please download and install it.');

            if (result == true) {
                window.location.href = 'install.html';
            }
        }
    }

person Aditya Arrabally    schedule 03.07.2014    source источник
comment
Какое сообщение об ошибке выдается, ERR_CREATE_PLUGIN или что-то еще?   -  person Fraser    schedule 04.07.2014
comment
при вызове geeEarthPluginFailureCB(message) значение сообщения приходит как пустая строка.   -  person Aditya Arrabally    schedule 07.07.2014
comment
Можете ли вы опубликовать ссылку на рабочий пример, который вызывает такое поведение, например, на jsfiddle?   -  person Fraser    schedule 07.07.2014
comment
Я смог воссоздать эту проблему на сайте Google. [code.google.com/apis/ajax/playground/#feature_balloons] Пожалуйста, замените существующий метод этим методом и запустите в firefox 'function failureCallback(errorCode) { console.log(Failed: in failureCallback(errorCode)::: Значение errorCode в: +errorCode); }'   -  person Aditya Arrabally    schedule 09.07.2014
comment
Я просто не могу воспроизвести ошибку в любом поддерживаемом браузере, извините, я не думаю, что смогу помочь здесь.   -  person Fraser    schedule 09.07.2014


Ответы (2)


Удалите все строки alert, например

alert("google.earth.createInstance : Start");

и

alert("google.earth.createInstance : End");

alert — это специальный метод, который блокирует выполнение и взаимодействие с пользователем — вполне может быть, что он блокирует инициализацию плагина. Это то, что я видел раньше.

Возможно, попробуйте использовать консоль или каким-либо образом вывести данные в документ, чтобы избежать блокировки. например

console && console.log("google.earth.createInstance, "End");

person Fraser    schedule 04.07.2014
comment
Я добавил предупреждения для устранения этой проблемы. - person Aditya Arrabally; 07.07.2014
comment
ну по упомянутым причинам это очень плохая идея. Скорее всего, это вызовет новые проблемы, а не поможет вам увидеть, в чем заключается ваша первоначальная проблема. - person Fraser; 07.07.2014

Google признал проблему и упомянул, что работает над исправлением.

На данный момент есть временное исправление, ниже приведена более короткая версия ответа Google.

******** Запустить ответ Google ***************

«Нам удавалось периодически воспроизводить эту проблему. В настоящее время команда клиента Google Планета Земля ожидает дополнительного расследования, чтобы найти основную причину. К сожалению, невозможно указать крайний срок, когда это будет исправлено. , Эта проблема определенно имеет высокий приоритет, поскольку она затрагивает всех пользователей Google Планета Земля с пользовательскими глобусами (GEE и GME), и мы сообщили команде, что теперь это критично для ваших приложений.

Единственный обходной путь, который мы видим прямо сейчас, — это обновить страницу, когда плагин не загружается (или вы можете сделать это программно: реализовать тайм-аут, и если через 5 секунд API Земли еще не загрузился, перезагрузите плагин или обновите страницу). Вы также можете рассмотреть возможность использования клиента Google Планета Земля, но я не уверен, что это применимо к вашему варианту использования».

************Завершить ответ Google ***************

person Aditya Arrabally    schedule 04.08.2014