Sometimes Initialization of Google Earth Plugin fails in IE10

邮差的信 提交于 2019-12-11 13:55:04

问题


This is my code for the initialization of google earth plugin.

Sometimes Initialization of Google Earth Plugin fails in IE10(I have it in compatability mode) IE7 Standards. This error happens only in IE and no other browser.

90% of the time createInstance() method creates the google earth plugin instance and control goes to mygeeEarthPluginInitCb() method but few times mostly after restarting the machine or after few hours of inactivity if I load the page createInstance fails and control goes to geeEarthPluginFailureCb() method.

This is causing an error page, a very intermittent one.

    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';
            }
        }
    }

回答1:


Remove all the alert lines, e.g.

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

and

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

alert is a special method that blocks execution and user interaction - it could well be that it is blocking the initialisation of the plugin. This is something I have seen before.

Perhaps try using the console, or else outputting data to the document in some way that avoids blocking. e.g.

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




回答2:


Google acknowledged the issue and mentioned they are working on a fix.

For right now there is a temporary fix below is the shorter version of Google's response.

******** Start Google's Response *************

"We have been able to reproduce this issue, intermittently. It is now pending additional investigation for the Google Earth client team, to find the root cause here. Unfortunately, it is not possible to provide an estimate for a deadline when this will be fixed. This issue definitely has a high priority since it impacts all Google Earth users with custom globes (GEE, and GME), and we have let the team know that this is now critical for your applications.

The only workaround that we can see, right now, is to refresh the page when the plugin fails to load (or you could do that programmatically: implement a timeout, and if after 5 seconds, the Earth API has not yet loaded, reload the plugin, or refresh the page). You could also consider using the Google Earth client, but I'm not sure if this is something that would be applicable to your use case."

**********End Google's Response ***************



来源:https://stackoverflow.com/questions/24562877/sometimes-initialization-of-google-earth-plugin-fails-in-ie10

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!