Google Chrome上的Google地球3D插件DIV中的黑屏

时间:2014-02-03 17:19:09

标签: jquery google-chrome activex google-earth google-earth-plugin

我在上一版Google Chrome中运行Google地球的3D插件时出现问题, 没有任何错误消息被捕获在回调上,ActiveX运行的div变黑,我唯一能看到的是右下角的使用条款消息。我无法跟踪发生这种情况的原因,但是当我调整窗口大小时,插件会恢复活动状态,黑屏的一些原因是:

  • 当我点击另一个javascript按钮(如Jquery的“手风琴”)
  • 有时在鼠标悬停

但它们是断断续续的,所以我无法追踪它。 我还注意到,在过去的Google Chrome版本中,问题不会出现。

这是加载3d地图的javascript:

function init()
{
google.earth.createInstance('map3d', initCB, failureCB);
}


function initCB(instance)
{
    ge = instance;
    ge.getWindow().setVisibility(true);
    gex = new GEarthExtensions(ge);
    tree_camadas = kmltree({
        url: '<url to kml here>',
        gex: gex,
        mapElement: $('#map3d'),
        element: $('#tree_camadas'),
        setExtent: false
    });
    tree_camadas.load();
    ge.getOptions().setFlyToSpeed(0.3);
    ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
    ge.getNavigationControl().setStreetViewEnabled(true);
    ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);
    var layerRoot = ge.getLayerRoot();
    var terrainLayer = layerRoot.getLayerById(ge.LAYER_TERRAIN);
    terrainLayer.setVisibility(false);
    // Create a new LookAt
    var lookAt = ge.createLookAt('');
    // Set the position values
    lookAt.setLatitude(-22.94249);
    lookAt.setLongitude(-43.48789);
    lookAt.setRange(74482); //default is 0.0
    // Update the view in Google Earth
    ge.getView().setAbstractView(lookAt);

    reescalou();
}

function failureCB(errorCode)
{
    alert('Falha no carregamento do Google Earth Plugin!');
}

3 个答案:

答案 0 :(得分:0)

奇怪的是,我re having, I solved it after hours of trying by upgrading jQuery and jQueryUI, I have no idea what was causing it since the GE-Plugin is not opensource and wasn生成任何错误消息时遇到了同样的问题。

答案 1 :(得分:0)

这种现象可以肯定地再现(chrome 32.0.1700.107 m),没有jquery:

<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
</head>

<script type="text/javascript">
var ge;

google.load("earth", "1", {"other_params":"sensor=false"});

function init()
{
  google.earth.createInstance('Earth', initCB, failureCB);
}

function initCB(instance)
{
    ge = instance;
    ge.getWindow().setVisibility(true);
}

function failureCB(errorCode){}

google.setOnLoadCallback(init);

</script>


<body>

  <div id="Earth" style="width:600px;height:250px"></div>
        <a href="http://www.google.com">Test.</a>

</body>

</html>

在未停靠的窗口上调用开发人员工具后,通过鼠标指针触摸锚定文本。

答案 2 :(得分:0)

抱歉,我的声誉不足以添加评论,所以我被迫进入这里。

这似乎是Google Chrome 32版本。对于我的网站,我使用了“点击此处,如果您没有看到Google地球”链接,则会弹出弹出窗口。 (与开发人员工具类似)其他信息......某些使用Silverlight和Chrome 32的网站也出现了类似的行为。相同的解决方案有效。最后,Google地球插件和Silverlight的相同空白div活动似乎在Google Chrome 33测试版中得到解决。使用谷歌地球插件的我的网站恢复正常(正常工作)与谷歌Chrome版本33测试版。

示例脚本(我必须刷新浏览器以启动其他代码,但您可能不必这样做。)

$(document).ready(function(){
var a = document.getElementById("**LINK ID HERE**");
      a.onclick = function() {
window.open("http://**EnterPopUpUrlHere**.html","help","toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=573px,height=700px,left = 360px,top = 125px");
 window.location.reload();
}; });