Запуск кнопки входа в Facebook с помощью OpenID-селектора - PullRequest
3 голосов
/ 16 сентября 2011

Я использую OpendID-селектор , но не смог заставить его вызвать кнопку Facebook на моей странице.

README.txt говорит следующее:

как подключить провайдера facebook

добавить следующий код в provider_large или provider_small:
facebook = {name: 'Facebook', url: "javascript: facebook_click ();"}

где facebook_click - это что-то вроде: function facebook_click () {$ ('#'). Click ();}

тот же механизм также применяется, если вы хотите подключить любого провайдера oauth или xauth

Я просто не могу понять, куда поместить этот function facebook_click().

Если вы не знакомы с OpenID-селектором, у него есть 2 JS-файла:

Интересно, кто-нибудь может мне помочь с этим:

где именно я должен поставить эту функцию, чтобы вызватькнопка входа на Facebook (id = fb_login) на моей странице входа в систему?

НЕКОТОРЫЙ КОД:

//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), то ничего не произойдет, и на консоли не будет ошибок.

1 Ответ

2 голосов
/ 16 сентября 2011

Попробуйте вызвать обработчик onlogin, определенный в кнопке входа в Facebook fb_login напрямую, вот так.

facebook = { name: 'Facebook', url: "javascript:eval($('#fb_login').attr('onlogin'));" }
...