2011-07-11 47 views
0

我很困惑。我试图做出小扩展(弹出),我需要连接到远程API。 这一点,我会用什么,如果它是一个标准的网页:包含远程库(API 4.5 Mapy.cz)到Google Chrome扩展程序

<script type="text/javascript" src="http://api4.mapy.cz/loader.js"></script> 
<script type="text/javascript">Loader.load();</script> 

我与包括新的元素脚本(没有工作对我来说)实验。但我不敢相信,没有更简单的方法...

请告诉我最好的方法。


编辑:

链接的API装载机是罚款和工作。感谢@serg。所以,我弹出的代码如下所示:

<script type="text/javascript" src="http://api4.mapy.cz/loader.js"></script> 
<script type="text/javascript"> 
    Loader.load(); 
    var center = SMap.Coords.fromWGS84(16.61574, 49.20315); 
</script> 

Object Loader是定义的,它是可以的。 Loader应该加载整个API或者对象SMap。但SMap未定义。接下来是什么?

回答

0

最后,我终于Mapy.cz问开发商,他们给的解决方案。使用Loader.load方法(),这使得包括其他脚本和异步加载相反的 - 用这样的方式:

Loader.async = true; 
Loader.load(null, null, function(){ 
    alert(123); // it works... 
    // custom code calling objects etc. from API 
    // ... 
}); 

Final Example of usage

1

如果您需要Ajax请求到这个偏远的API,你需要列出API域在您的清单权限:

{ 
    "permissions": [ 
    "http://api4.mapy.cz/" 
    ], 
} 
+0

我需要包括这个JavaScript脚本到我的扩展使用从库的方法。它是地图的API,如maps.google.com。 –

+1

@Jaroslav打开弹出式控制台并检查是否有任何错误(右键点击弹出图标并选择检查)。 – serg

+0

自然有错误:“Loader未定义”。但有些东西是有线的:当我尝试从控制台使用API​​时,它可以工作! (如果我在头部包含