如果我的内容类型是 URL ,有没有办法gadgets.*
在我的 JavaScript 代码中使用?
问问题
845 次
2 回答
1
您可以使用代理内容功能。这样您就可以从您自己的服务器获取的内容中访问小工具。* API。
<Module>
<ModulePrefs title="My App">
<Require feature="opensocial-0.9"/>
</ModulePrefs>
<Content view="canvas" href="http://www.example.com/myapp/canvas/index.html">
</Content>
</Module>
于 2010-10-27T18:19:27.883 回答
1
根据 OpenSocial 规范(至少从 0.8 及更高版本开始),请求功能的 JavaScript 库的相对路径链接应在 content URL 参数中传递。在 OpenSocial 规范中搜索关键字“libs”以获取更多信息。
问题仍然是 URL 中给出的路径是相对的,而不是绝对的,您需要知道在何处附加此参数的基本 URL。此处的讨论线程建议使用基本 URL“https://www-gm-opensocial.googleusercontent.com/gadgets/js/”并按原样附加“libs”的值,但我尚未成功验证. 我们用来为 iGoogle(支持 jQuery)上的 OpenSocial 小工具获取库的代码是:
var libsMatch = window.location.search.match(/[?&]libs=([^&]*)/);
if (libsMatch) {
var libArray = libsMatch[1].split(",");
$.each( libArray, function(i, val) {
$.ajax( {
url: "http://www.google.com/ig/f/" + val,
dataType: 'script'
} );
} );
}
但请注意,并非所有 API 都可以通过这种方式使用,例如 gadgets.io.* 无法通过这种方式启用,其他 API 需要进行测试。
于 2010-11-01T10:33:45.000 回答