1

我正在尝试扩展一个显示带有LabeledMarker的谷歌地图的网站页面。Google Maps API 定义了一个名为 GMarker 的类,该类由 LabeledMarker 扩展。

问题是,我似乎无法正确加载 LabeledMarker 脚本,即在 Google API 加载之后,我收到“未定义 GMarker”错误。

在这种情况下指定脚本的正确方法是什么?

我首先将 ASP.NET 的 ClientScript.RegisterClientScriptInclude() 用于 google API url,然后立即使用 LabeledMarker 脚本文件。

最初的 google API 加载器会编写更多的脚本链接来加载实际的 GMarker 类。在处理下一个脚本块(LabeledMarker 脚本)之前,不应该执行所有这些脚本。

我检查了生成的 HTML,并且脚本块以正确的顺序发出。

<script src="google api url" type="text/javascript"></script>
...
(the above scripts uses document.write() etc to append further script blocks/sources)
...
<script src="Scripts/LabeledMarker.js" type="text/javascript"></script>

再一次,LabeledMarker.js 似乎在 google API 完成加载之前被执行。

4

1 回答 1

0

我认为这就是问题所在。我在加载脚本后发生的 body.onload 中调用了 google.load()。通过从 onload 处理程序中发出 LabeledMarker 的脚本标记来解决。

于 2010-05-26T13:13:32.003 回答