我的问题可能有一个简单的答案,但我们将不胜感激。
我在我的GE插件中使用ExtJs。要使插件正常工作,我需要在主HTML页面中包含以下内容。
<!DOCTYPE html>
<!-- Auto Generated with Sencha Architect -->
<!-- Modifications to this file will be overwritten. -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MDS</title>
<script src="https://www.google.com/jsapi" id="GoogleEarth"></script>
<script src="/static/googleearth/Ext.ux.GEarthPanel-1.3.js" id="GoogleEarth"> </script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript">
google.load("earth", "1");
google.load("maps", "2.xx");
</script>
</head>
<body></body>
</html>
现在,当我想删除以下代码并尝试单独运行它时,页面似乎继续加载。
<script type="text/javascript">
google.load("earth", "1");
google.load("maps", "2.xx");
</script>
即使我删除了代码并将其粘贴到自己的.js文件中,问题仍然存在。
例如使用
<script type="text/javascript" src="/static/GoogleEarthStartup.js" id="Test"></script>
内容如
google.load("earth", "1");
google.load("maps", "2.xx");
似乎想要使用脚本标记保留在主页面中。
无论如何我能解决这个问题吗?
我要问的主要原因是我每次保存项目时都会使用一个覆盖我的主html的包。
该软件包允许我通过链接添加脚本,如上所示,尽管它对结果没有影响。
我收到错误消息 TypeError:google.earth is undefined
请建议。
答案 0 :(得分:0)
可能只是脚本元素的顺序。
脚本按照文档中的顺序执行,因此您的错误是因为app.js
或Ext.ux.GEarthPanel-1.3.js
中的某些内容在文件之前引用了google.earth
GoogleEarthStartup.js
已被执行 - 因此google.earth is undefined
因为google.load("earth", "1");
尚未被调用。
尝试修复尝试简单地重新排序脚本元素,如此...
<script type="text/javascript" src="//www.google.com/jsapi" id="GoogleEarth"></script>
<script type="text/javascript" src="/static/GoogleEarthStartup.js" id="Test"></script>
<script type="text/javascript" src="/static/googleearth/Ext.ux.GEarthPanel-1.3.js" id="GoogleEarth"></script>
<script type="text/javascript" src="app.js"></script>