1

gadgets.*コンテンツ タイプが URL の場合、JavaScript コードで使用する方法はありますか?

4

2 に答える 2

1

OpenSocial 仕様 (少なくとも 0.8 以降) によると、要求された機能の JavaScript ライブラリへの相対パス リンクをコンテンツ URL パラメーターで渡す必要があります。詳細については、OpenSocial 仕様でキーワード「libs」を検索してください。

問題は、URL で指定されたパスが絶対パスではなく相対パスであり、このパラメーターを追加するベース URL を知る必要があることです。ここのディスカッション スレッドでは、「https://www-gm-opensocial.googleusercontent.com/gadgets/js/」というベース URL を使用し、「libs」の値をそのまま追加することを提案していますが、それを確認できていません。 . iGoogle で OpenSocial ガジェットのライブラリを取得するために使用したコード (jQuery をサポート) は次のとおりです。

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 に答える
1

プロキシされたコンテンツ機能を使用できます。そうすれば、独自のサーバーから取得したコンテンツから gadgets.* 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 に答える