浏览 5732 次
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-06
最后修改:2009-05-06
这种动态加载方式很简单,首先包含google动态加载api本身的.js文件,代码如下: <script type="text/javascript" src="http://www.google.com/jsapi"></script> 然后用google.load(模块名字,版本号)加载模组比如: google.load("maps","2"); //加载gmap google.load("search","1");//加载search google.load("jquery","1.3.2");//加载jquery google.load("dojo","1.3.0");//加载dojo 最后一步很重要,我们要运行google.setOnLoadCallBack(你的初始函数)。为什么要运行这个函数呢?因为你自己的初始函数里如果调用了尚未加载完成的模块中的代码,浏览器就会报错,你的ajax程序就中断停止运行了。 一个完整的实例是: <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi?key=ABCDEFG"></script> <script type="text/javascript"> google.load("maps", "2"); google.load("search", "1"); // Call this function when the page has been loaded function initialize() { var map = new google.maps.Map2(document.getElementById("map")); map.setCenter(new google.maps.LatLng(37.4419, -122.1419), 13); var searchControl = new google.search.SearchControl(); searchControl.addSearcher(new google.search.WebSearch()); searchControl.addSearcher(new google.search.NewsSearch()); searchControl.draw(document.getElementById("searchcontrol")); } google.setOnLoadCallback(initialize); </script> </head> <body> <div id="map" style="width: 200px; height: 200px"></div> <div id="searchcontrol"></div> </body> </html> 下面的url列出了google loader api 可以加载的模组及其版本号。 加载自产的组件: http://code.google.com/apis/ajax/documentation/ 加载第三方组件: http://code.google.com/apis/ajaxlibs/documentation/ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-06
google第三方类库的jsapi有个隐患,浏览用户在google上搜索什么东西被墙掉,在这阶段里jsapi会同样不可用
|
|
返回顶楼 | |
发表时间:2009-05-06
闲云无心 写道 google第三方类库的jsapi有个隐患,浏览用户在google上搜索什么东西被墙掉,在这阶段里jsapi会同样不可用
jsapi不工作,你是说在加载前,还是加载后。模块加载完成后,模块就和jsapi无关了。比如如果你已经成功加载了dojo模组,而你的search模组挂起了,dojo模组还是可以运行的。但是如果你的search模组挂起之后,你的代码还想动态加载其他模组就有可能失败。 当然如果你的浏览器设置成javascript一旦出错,就终止javascript编译器的工作,那么你所有的javascript都在出错后停止运行。 |
|
返回顶楼 | |
发表时间:2009-05-06
gty509 写道 闲云无心 写道 google第三方类库的jsapi有个隐患,浏览用户在google上搜索什么东西被墙掉,在这阶段里jsapi会同样不可用
jsapi不工作,你是说在加载前,还是加载后。模块加载完成后,模块就和jsapi无关了。比如如果你已经成功加载了dojo模组,而你的search模组挂起了,dojo模组还是可以运行的。但是如果你的search模组挂起之后,你的代码还想动态加载其他模组就有可能失败。 当然如果你的浏览器设置成javascript一旦出错,就终止javascript编译器的工作,那么你所有的javascript都在出错后停止运行。 你理解错我意思了,我说的不是js本身问题,而是用户在google搜索敏感内容被屏蔽几分钟,这之后打开或者刷新你的页面,而你的页面用到的是jsapi托管的第三方类库,就有点问题了 可能你没碰到过这种情况 举个例子 访问http://www.google.com/jsapi是没问题的 但是一旦客户之前google了什么敏感的关键字被墙一段世间 譬如搜索个phproxy,然后随便点个连接 http://www.google.com/url?sa=t&source=web&ct=res&cd=4&url=http%3A%2F%2Fbbs.netbirds.com%2Fproxy%2F&ei=UhgBSsuDGYj4tAPpsZnsBQ&rct=j&q=phproxy&usg=AFQjCNGefrJjwHpk-x_HShQuazW4JwDpBA&sig2=2oxvxwTv5xZHNmLBeHgFWw 之后再访问 http://www.google.com/jsapi,就会页面载入错误 web应用本身需要的第三方类库还是不要太依赖google jsapi了 |
|
返回顶楼 | |