1

如果我的内容类型是 URL ,有没有办法gadgets.*在我的 JavaScript 代码中使用?

4

2 回答 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 回答