Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Earth回调未启动_Javascript_Javascript Events_Google Earth_Google Earth Plugin - Fatal编程技术网

Javascript Google Earth回调未启动

Javascript Google Earth回调未启动,javascript,javascript-events,google-earth,google-earth-plugin,Javascript,Javascript Events,Google Earth,Google Earth Plugin,我正试图让Google Earth回调正常工作,但它们似乎并没有向我开火。我使用了Google Earth API站点上的作为参考,看不出它和我的代码有什么区别。。。但是我的不行 以下是我的代码的重要部分: <script type="text/javascript"> var ge; google.load("earth", "1"); function init() { document.getElementById('map3d').innerHTML = '';

我正试图让Google Earth回调正常工作,但它们似乎并没有向我开火。我使用了Google Earth API站点上的作为参考,看不出它和我的代码有什么区别。。。但是我的不行

以下是我的代码的重要部分:

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

google.load("earth", "1");

function init() {
  document.getElementById('map3d').innerHTML = '';
  google.earth.createInstance('map3d', initCallback, failureCallback);
}

function initCallback(pluginInstance) {
  ge = pluginInstance;
  ge.getWindow().setVisibility(true);

  // add a navigation control
  ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);

  // Set the FlyTo speed.
  ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);

  // add some layers
  //ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
  //ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);

  throw (new Error("InitCallback!"));

  google.earth.addEventListener(ge.getView(), 'viewchange', function () {
      throw (new Error("EVENT!"));
  });

}

function failureCallback(errorCode) {
}
</script>

var-ge;
谷歌加载(“地球”,“1”);
函数init(){
document.getElementById('map3d')。innerHTML='';
createInstance('map3d',initCallback,failureCallback);
}
函数initCallback(pluginInstance){
ge=插件安装;
ge.getWindow().setVisibility(true);
//添加导航控件
ge.getNavigationControl().setVisibility(ge.VISIBILITY\u AUTO);
//设置飞行速度。
ge.getOptions().setFlyToSpeed(ge.SPEED\u TELEPORT);
//添加一些层
//ge.getLayerRoot().enableLayerById(ge.LAYER\u BORDERS,true);
//ge.getLayerRoot().enableLayerById(ge.LAYER\u ROADS,true);
抛出(新错误(“InitCallback!”);
google.earth.addEventListener(ge.getView(),'viewchange',函数(){
抛出(新错误(“事件!”);
});
}
函数故障回调(错误代码){
}
“InitCallback!”错误被正确抛出,但我从未看到“EVENT!”错误被抛出——无论我如何移动地球仪


有人知道我做错了什么吗?非常感谢您的帮助

我不是javascript方面的专家,但如果您更换:

       throw (new Error("EVENT!"));
改为使用警报,例如:

       alert('EVENT!');

我打赌你会发现它会起作用的。ie eventListener正在工作,它似乎不喜欢“throw”命令

我不是javascript方面的专家,但是如果您替换:

       throw (new Error("EVENT!"));
改为使用警报,例如:

       alert('EVENT!');

我打赌你会发现它会起作用的。ie eventListener正在工作,它似乎不喜欢'throw'命令

lifeIsGood是正确的-当您在没有try-catch块的情况下抛出上面的错误时,将导致抛出错误后的js无法执行

而是使用
console.log('Error')如果您只是试图使用“快速脏方式”在控制台中打印某些内容

function initCallback(pluginInstance) {
     ge = pluginInstance;
     ge.getWindow().setVisibility(true);

     //throw (new Error("InitCallback!")); -- change this to 
     console.log('InitCallback!');

     google.earth.addEventListener(ge.getView(), 'viewchange', function () {
         //throw (new Error("EVENT!")); -- change this to
         console.log('EVENT!');
     });

}

lifeIsGood是正确的-当您在没有try-catch块的情况下抛出上述错误时,将导致抛出错误后的js不执行

而是使用
console.log('Error')如果您只是试图使用“快速脏方式”在控制台中打印某些内容

function initCallback(pluginInstance) {
     ge = pluginInstance;
     ge.getWindow().setVisibility(true);

     //throw (new Error("InitCallback!")); -- change this to 
     console.log('InitCallback!');

     google.earth.addEventListener(ge.getView(), 'viewchange', function () {
         //throw (new Error("EVENT!")); -- change this to
         console.log('EVENT!');
     });

}

不幸的是,事件并没有真正发生。进行此更换不会导致弹出警报。原始代码-throw(newerror(…)-是一种快速脏方法,用于将某些内容打印到错误控制台以进行调试。但最终我在事件回调中放的东西都没有被调用。这很有趣,因为如果你转到你提到的视图更改示例页面,点击“在谷歌代码游乐场玩这个示例”按钮——在该页面上,当我在initCallback()中放一个“throw”时,它会工作,但是在eventListener中进行“抛出”将不起作用。不过,警报将在这两个位置都起作用-尽管eventlistener中的一个会导致我的浏览器冻结:)奇怪。我不知道为什么它以前不起作用。。。我可能有别的什么东西引起了这个问题。事件确实正在触发并移除抛出(Error())修复了它。不幸的是,事件确实没有触发。进行此更换不会导致弹出警报。原始代码-throw(newerror(…)-是一种快速脏方法,用于将某些内容打印到错误控制台以进行调试。但最终我在事件回调中放的东西都没有被调用。这很有趣,因为如果你转到你提到的视图更改示例页面,点击“在谷歌代码游乐场玩这个示例”按钮——在该页面上,当我在initCallback()中放一个“throw”时,它会工作,但是在eventListener中进行“抛出”将不起作用。不过,警报将在这两个位置都起作用-尽管eventlistener中的一个会导致我的浏览器冻结:)奇怪。我不知道为什么它以前不起作用。。。我可能有别的什么东西引起了这个问题。事件确实正在触发并移除抛出(Error())修复了它。