2010-05-15 64 views
1

我想要扩大显示谷歌地图与LabeledMarker网站页面。 Google Maps API定义了一个名为GMarker的类,该类由LabeledMarker扩展。如何正确加载依赖JavaScript文件

问题是,我似乎无法正确加载LabeledMarker脚本,即在Google API加载后出现'GMarker not defined'错误。

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

我首先使用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似乎谷歌的API完成加载之前得到执行。

+1

我做同样的事情,从来没有这个问题。目前我包含Google jsapi脚本(www.google.com/jsapi?key= ...),然后立即使用它加载地图api'google.load(“maps”,'2.132');'然后加载我的自定义脚本。 – 2010-05-18 09:39:55

回答

0

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