2011-09-15 60 views
3

我正在使用OpendID-selector,但無法觸發我的頁面上的Facebook按鈕。使用OpenID選擇器觸發Facebook登錄按鈕

的readme.txt說以下內容:

如何插件Facebook的供應商

把下面的代碼在providers_large或providers_small:
的Facebook = { 名稱:「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),然後沒有任何反應,並且控制檯上沒有錯誤。

回答

2

嘗試直接調用在Facebook登錄按鈕fb_login中定義的onlogin處理程序,如此。

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

thx @cheeken - 我曾試過,但它失敗(沒有任何反應,控制檯上沒有錯誤) - 任何其他建議? – pepe

+0

你能確認'$('#fb_login')。click();'在控制檯上工作嗎? (如果選擇器找不到任何匹配項,就會看到沒有任何活動,就像您報告的那樣。) – cheeken

+0

@ cheeken-我在OP上添加了更多信息 - 讓我知道您的想法 – pepe