gpt4 book ai didi

javascript - 将 openId 选择器与 Asp.Net MVC 2 集成的问题

转载 作者:行者123 更新时间:2023-11-29 20:20:25 24 4
gpt4 key购买 nike

我正在尝试使用 openid 选择器 javascript 库来允许 OpenId 登录网站。我正在按照 this site 上的说明进行操作,但我通常不是网络程序员,而且它不工作,我不确定为什么。我敢肯定它是相当微不足道的东西,但我看不到它。

问题是带有开放 Id 位的图像没有呈现在它应该去的地方,即 <div id="openid_btns"></div>。我假设。这似乎向我表明应该设置此 div 内容的函数没有运行。

我怀疑是脚本。

我已将脚本引用添加到 Site.Master,因为它指示:

<script type="text/javascript" src="../../Scripts/jquery-1.4.1.min.js"></script>  
<script type="text/javascript" src="../../Scripts/openid-jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
alert("document ready"); // <- I added this to verfiy that this is being called
openid.init('openid_identifier');
});
</script>

它似乎在每个页面上调用该函数(显示警报),然后我假设它应该调用 openid.init 函数。

这是在 openid-jquery.js 中定义的脚本:

var openid = {    
version: '1.2', // version constant
demo: false,
demo_text: null,
cookie_expires: 6 * 30, // 6 months.
cookie_name: 'openid_provider',
cookie_path: '/',

img_path: '../images/',
lang: null, // language, is set in openid-jquery-<lang>.js
signin_text: null, // text on submit button on the form
input_id: null,
provider_url: null,
provider_id: null,
all_small: false, // output large providers w/ small icons
no_sprite: false, // don't use sprite image
image_title: '{provider}', // for image title

init: function (input_id) {
alert("initialising");
providers = $.extend({}, providers_large, providers_small);

var openid_btns = $('#openid_btns');

this.input_id = input_id;

$('#openid_choice').show();
$('#openid_input_area').empty();

var i = 0;
// add box for each provider
for (id in providers_large) {
if (this.all_small) {
openid_btns.append(this.getBoxHTML(id, providers_large[id], 'small', i++));
} else
openid_btns.append(this.getBoxHTML(id, providers_large[id], 'large', i++));
}
if (providers_small) {
openid_btns.append('<br/>');

for (id in providers_small) {

openid_btns.append(this.getBoxHTML(id, providers_small[id], 'small', i++));
}
}

$('#openid_form').submit(this.submit);

var box_id = this.readCookie();
if (box_id) {
this.signin(box_id, true);
}

我再次添加了 alert("initialising");似乎从未被调用过。

它应该调用这个函数吗?我怎样才能确定为什么这个函数没有被调用?有什么想法吗?

更新:

在文档就绪函数中,我交换了函数的顺序,如下所示:

<script type="text/javascript">
$(document).ready(function () {
openid.init('openid_identifier');
alert("document ready");
});
</script>

现在没有发出警报。这是什么意思?其他功能出了什么问题吗?我怎么知道它是什么?

更新 2:

奇怪。如果我将 openid-jquery.js 文件重命名为其他东西(似乎是任何东西)(比如 openid-jquery.2.js),那么我可以从打开的 id 脚本中看到警报。

但它似乎只执行警报而不是下一行,因为当我稍后添加另一个更改时(即在下一行之后),第二个警报从未见过。也不知道为什么会这样。

更新 3:在 chrome 中调试后,问题似乎是 providers_large, providers_small未定义并添加:

var providers_large;
var providers_small;

到脚本的顶部允许它至少运行并显示警报。但仍然没有图像……我想进一步调查。

最佳答案

因此,在说明的第 4 步中,它似乎需要更新以添加英语 javascript 提供程序信息,这是定义 provider_large 的地方,如下所示:

<script type="text/javascript" src="../../Scripts/jquery-1.4.1.min.js"></script>  
<script type="text/javascript" src="../../Scripts/openid-jquery.js"></script>
<script type="text/javascript" src="../../Scripts/openid-jquery-en.js"></script>
<script type="text/javascript">
$(document).ready(function () {
alert("document ready"); // <- I added this to verfiy that this is being called
openid.init('openid_identifier');
});
</script>

关于javascript - 将 openId 选择器与 Asp.Net MVC 2 集成的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com