3

OpendID-selectorを使用していますが、自分のページで Facebook ボタンをトリガーすることができませんでした。

README.txt には次のように書かれています。

Facebook プロバイダーをプラグインする方法

次のコードを providers_large または providers_small に入れます:
facebook = { name: 'Facebook', url: "javascript:facebook_click();" }

ここで、facebook_click は次のようなものです: function facebook_click() { $('#').click(); }

oauth または xauth プロバイダーをプラグインする場合も、同じメカニズムが適用されます。

私はそれをどこに置くべきか分かりませんfunction facebook_click()

OpenID-selector に慣れていない場合は、次の 2 つの JS ファイルがあります。

誰かがこれで私を助けることができるのだろうか:

id = fb_loginログインページでFacebook ログインボタン ( ) をトリガーするには、この関数を正確にどこに配置すればよいですか?

いくつかのコード:

//OPENID-EN.JS

var providers_large = {
    facebook : {
        name: 'Facebook',
        url: "javascript:facebook_click();" 
    },
    google : {
        name : 'Google',
        url : 'https://www.google.com/accounts/o8/id'
    },
    yahoo : {
        name : 'Yahoo',
        url : 'http://me.yahoo.com/'
    },
};


//LOGIN PAGE

<fb:login-button id="fb_login" v="2" size="medium" onlogin='window.location="https://graph.facebook.com/oauth/authorize?client_id=<?php echo $this->config->item('facebook_app_id'); ?>&scope=email,publish_stream&redirect_uri=<?php echo site_url('fb_signin'); ?>&amp;r=" + window.location.href;'>
            Login with Facebook
</fb:login-button>

関数を含めずにボタンをクリックすると、openid-jquery.js のこの行を参照してコンソールにエラーが表示されます

facebook_click is not defined
Line 122

...
if (url.indexOf("javascript:") == 0) {
url = url.substr("javascript:".length);
eval(url); //line 122
return false;
} 

関数を任意の場所 (ログイン ページ、openid-jquery、または openid-en) に含めても、何も起こらず、コンソールにエラーは表示されません。

4

1 に答える 1

2

onloginFacebook ログイン ボタンで定義されているハンドラをfb_login直接呼び出してみてください。

facebook = { name: 'Facebook', url: "javascript:eval($('#fb_login').attr('onlogin'));" }
于 2011-09-15T23:53:01.553 に答える