Javascript Google Earth回调未启动
我正试图让Google Earth回调正常工作,但它们似乎并没有向我开火。我使用了Google Earth API站点上的作为参考,看不出它和我的代码有什么区别。。。但是我的不行 以下是我的代码的重要部分: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 = '';
<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())修复了它。