我正在开发一个带有谷歌地球插件的网络应用程序,在Windows 7上。 我注意到当我将地球对象打印到chrome控制台时(用于deguggin和代码检查) 对象是空的(看起来像"对象{}")。经过大量谷歌搜索后,我无法找到原因。任何人都可以帮助我吗? 谢谢!
更新:这是我正在运行的代码。我需要帮助,没有调试就无法工作..
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<div id="map3d" style="height: 100%; width: 100%;"></div>
<!--nothing inside this -->
@RenderBody()
@Scripts.Render("~/bundles/jquery")
<script src="https://www.google.com/jsapi"></script>
<script>
var ge;
function init() {
google.earth.createInstance('map3d', initCB, failureCB);
};
function initCB(instance) {
ge = instance;
ge.getWindow().setVisibility(true);
console.log(JSON.stringify(ge, null, 4));
console.log('0%', ge);
console.log(ge.parseKml);
};
function failureCB(errorCode) {
throw ("Failed to load earth plugin. Error code = " + errorCode);
};
google.load("earth", "1", { "other_params": "sensor={false}" });
google.setOnLoadCallback(init);
</script>
</body>
</html>
Everithing工作,我可以看到地图,但结果在控制台中:
{}
0% Object {}
function parseKml() { [native code] }
答案 0 :(得分:1)
您可以先尝试将对象转换为JSON。 e.g。
console.log(JSON.stringify(obj, null, 4));
或者使用%O
强制将值的格式作为可扩展的JavaScript对象。 e.g。
console.log('%O', obj);
输出值失败而不是对象。例如
console.log(ge.getPluginVersion());
不是console.log(ge);
编辑
根据您希望看到的代码。您应该记录您感兴趣的值,如我在上一个示例中所提到的。 e.g。
console.log(ge.getPluginVersion());
不是console.log(ge);
您还可以通过调用getType
来测试运行时API对象是什么。 e.g。
console.log(ge.getType());
// GEPlugin
您还可以使用in
测试API对象在运行时是否具有属性/方法。 e.g。
console.log('createPlacemark' in ge)
// true
如果您想知道API对象具有哪些属性和方法,或者您甚至可以在视觉工作室对象浏览器之类的东西中打开该对象,则可以始终使用Google Earth API Reference。