我有一个让我发疯的问题.我正在尝试修改openid-selector以支持facebook.我正在使用RPXNow作为我的提供者,因此它要求将表单提交给与标准不同的URL.
例如.RpxNow要求我像这样设置我的表单:
<form action="https://wikipediamaze.rpxnow.com/openid/start?token_url=...">
这适用于除Facebook和Myspace之外的所有提供商.那些需要将表单发布到不同的URL,如下所示:
<form action="https://wikipediamaze.rpxnow.com/facebook/start?token_url=...">
和
<form action="https://wikipediamaze.rpxnow.com/myspace/start?token_url=...">
open id选择器在表单上有一堆按钮,每个按钮代表openid提供程序.我要做的是检测点击Facebook或Myspace按钮的时间,并在提交前更改表单上的操作.然而,它不起作用.这是我的代码.
我尝试了几种具有相同"不支持"异常的变体
$("#openid_form").attr("action", form_url)
document.forms[0].action = form_url
Run Code Online (Sandbox Code Playgroud)
有什么建议?
更新
以下是有关代码的更多详细信息.为简洁起见,我省略了一些.我唯一做的是将Facebook部分添加到"providers_large"对象(成功地将徽标添加到网站),而不是提供识别用户的URL,我正在创建一个名为"form_url"的属性,是我想要设置我的表单的动作.如果您查看标题"提供者图像点击",您将看到我在哪里检查属性"form_url"的存在,并使用jQuery更改操作并提交表单.但是,当我在调试模式中单步执行JavaScript时,它告诉我这是一个无效的操作.
var providers_large = {
google: {
name: 'Google',
url: 'https://www.google.com/accounts/o8/id'
},
facebook: {
name: 'Facebook',
form_url: 'http://wikipediamaze.rpxnow.com/facebook/start?token_url=http://www.wikipediamaze.com/Accounts/Logon'
},
};
var providers_small = {
myopenid: {
name: 'MyOpenID',
label: 'Enter your MyOpenID username.',
url: 'http://{username}.myopenid.com/'
},
livejournal: {
name: 'LiveJournal',
label: 'Enter your Livejournal username.',
url: 'http://{username}.livejournal.com/'
},
flickr: {
name: 'Flickr',
label: 'Enter your Flickr username.',
url: 'http://flickr.com/{username}/'
}, …Run Code Online (Sandbox Code Playgroud)