用chrome调试谷歌地球插件

时间:2014-07-19 08:00:44

标签: javascript google-chrome google-earth google-earth-plugin

我正在开发一个带有谷歌地球插件的网络应用程序,在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] } 

1 个答案:

答案 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