Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确加载依赖的JavaScript文件_Javascript_Google Maps_Registerclientscriptblock - Fatal编程技术网

如何正确加载依赖的JavaScript文件

如何正确加载依赖的JavaScript文件,javascript,google-maps,registerclientscriptblock,Javascript,Google Maps,Registerclientscriptblock,我试图扩展一个显示谷歌地图的网页。GoogleMapsAPI定义了一个名为GMarker的类,该类由LabeledMarker扩展 问题是,我似乎无法正确加载LabeledMarker脚本,也就是说,在加载Google API之后,我出现了“GMarker not defined”错误 在这种情况下,指定脚本的正确方法是什么? 我首先使用ASP.NET的ClientScript.RegisterClientScriptInclude()作为google API url,然后立即使用Labeled

我试图扩展一个显示谷歌地图的网页。GoogleMapsAPI定义了一个名为GMarker的类,该类由LabeledMarker扩展

问题是,我似乎无法正确加载LabeledMarker脚本,也就是说,在加载Google API之后,我出现了“GMarker not defined”错误

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

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

最初的GoogleAPI加载程序会编写更多的脚本链接来加载实际的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>

...
(以上脚本使用document.write()等附加更多脚本块/源)
...

再一次,LabeledMarker.js似乎在google API加载完成之前执行。我认为这就是问题所在。我在body.onload中调用了google.load(),这是在加载脚本之后发生的。通过在onload处理程序中为LabeledMarker发出脚本标记来解决此问题。

我做了同样的事情,但从未遇到过此问题。目前我包括了GoogleJSAPI脚本(www.Google.com/jsapi?key=…),然后马上使用它加载MapsAPI
Google.load(“maps”,2.132”)然后加载我的自定义脚本。