(JQueryプラグイン)オブジェクトスコープのメソッドをGoogle APIコールバックとして送信する方法を以前に理解した人はいますか?たとえば、PageSpeedAPIの場合。
すべてのサンプルは、グローバル関数の名前を送信することを示していますが、特定のインスタンスメソッド(またはJQueryオブジェクトを再検索する方法)を何らかの方法で送信したいと思います。
これは彼らのサンプルに基づいています:
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
var query = [
'url=' + url,
'callback=runCallbacks',
'key=' + settings.api_key,
].join('&');
s.src = API_URL + query;
document.head.insertBefore(s, null);
だから私が達成したいのはこの呼び出しのようなものです:
$('div.jq-google-plugin).MyGooglePlugin('callback',result);
プラグインのinitメソッド内からGoogleへの呼び出しを設定しています。
たとえば、これを試しましたが、これにより、GoogleAPIから400の不正なリクエストが生成されます。
var query = [
'url=' + url,
'callback='+ encodeURI('function(result){$(\'div.jq-google-plugin\').MyGooglePlugin(\'callback\',result);}’,
'key=' + settings.api_key,
].join('&');
私が本当にしたくないのは、各プラグインインスタンスの応答をキャッチするためだけに、名前が変更されたグローバルを作成することですが、これが唯一の方法だと思いますか?(これはところで動作します。)
var query = [
'url=' + url,
'callback=myUniqueGlobalCallback',
'key=' + settings.api_key,
].join('&');
myUniqueGlobalCallback = function(result){$('div.jq-google-plugin).MyGooglePlugin('callback',result);}
洞察を事前に感謝します!解決策はGoogleAPI固有ではないかもしれませんが、グローバル関数名以外のものを拒否する理由の周りにある可能性があります。