我正在构建一个依赖于谷歌地球插件的页面。该页面是使用 require.js 和 Backbone 构建的。我想在导航到页面的给定部分时初始化Google地球插件(例如,触发特定的主干路由)。
但是,如果在页面加载后初始化了谷歌地球插件(通过google.load('earth', '1');
),则页面的内容将替换为生成的脚本标记 - 例如:
<script src="https://www.google.com/uds/?file=earth&v=1" type="text/javascript"></script>
<script src="https://www.google.com/uds/api/earth/1.1/109c7b2bae7fe6cc34ea875176165d81/default.I.js" type="text/javascript"></script>
页面消失。
有没有办法在页面加载后初始化插件,或者我是否需要求助于 HEAD 中的一些代码来初始化内容,然后仅在我准备好显示它时才调用google.earth.createInstance
?
发布后,我终于在这里找到了答案:
google.load(
'earth',
'1',
{
'callback': function()
{
// what was in the google.setOnLoadCallback
// in the GE plugin examples
}
}
);
(假设您已经包含指向 https://www.google.com/jsapi 的<script>
标签)。将回调作为第三个参数的一部分传递给google.load
显然会阻止它将脚本标签写入您的文档并覆盖那里的任何其他内容!