我在 MVC 中工作,我希望能够使用弹出窗口实现登录系统。
我坚持的部分是,当弹出窗口中发生成功登录时 - 它需要关闭并且必须在主页上进行重定向。我正在努力实现这一目标,因为我遇到了 JQuery 的一大堆范围问题。
我用这个创建我的弹出窗口:
window.open('@Url.Action("Login", "User", null, "http")', 'Login', 'height=500,width=300');
能够预先var window =
添加到上面的代码会很好,这样我就能够重新登录成功登录时要关闭的窗口 - 但该变量超出了我的登录窗口的范围:
@{
ViewBag.Title = "Login";
}
<h2>Login</h2>
<p id="login-fail" style="display:none">Incorrect username/password</p>
@using (Html.BeginForm()) {
@Html.LabelFor(x => x.Email, new { id = "txt-email" })
@Html.TextBoxFor(x => x.Email)
<br />
<label for="txt-password">Password</label>
<input id="txt-password" type="password" />
<input type="submit" value="Login" />
}
<script type="text/javascript">
$(function () {
var success = '@Model.Success';
if (success == "True") {
loginSuccess(this.window);
}
var failed = '@Model.Failed';
if (failed == "True") {
$("#login-fail").show();
}
});
</script>
我在发布表单时刷新部分视图,并在加载页面时检查 Jquery 是否成功。成功后,我尝试将当前窗口传递给一个名为 loginSuccess 的 js 函数:
function loginSuccess(elem) { // successful login has occurred
elem.close();
window.location = //getRedirect;
}
到目前为止,我无法关闭弹出窗口,然后在设置重定向时需要将注意力集中在主窗口上。
我有一个名为 functions 的 javascript 文件,我的主窗口和弹出每个引用。但是,创建弹出窗口的 js 不在函数文件中,并且 window 变量对任何一个窗口都不可用。
长话短说,我试图模拟 LinkedIn 登录过程,因此通过调用调用创建弹出窗口的代码IN.UI.Authorize().place();
- 这排除了返回窗口变量,因为无论我使用我的模拟 LinkedIn 还是真正的一个。
非常感谢任何帮助,特别是以某种方式引用弹出窗口,然后重新聚焦到重定向的主窗口。