私はIFrameのログインページを持っています。ユーザーが正常にログインすると、自分の個人用のコンテンツで新しいページを開きます。そうでない場合、同じiFrame内にエラーメッセージが表示されます。ログインの成功に応じて、新しいウィンドウ/タブまたは同じウィンドウ/タブでページを開く方法?
これは私のコードです:
<form class="register-form" runat="server" id='form1' target="_blank">
<div class="input username">
<asp:TextBox ID="tbUsername" runat="server" type="text" value="Username"></asp:TextBox>
</div>
<div class="input password">
<asp:TextBox ID="tbPassword" runat="server" value="Password" type="text"></asp:TextBox>
</div>
<div class="submit">
<asp:Button runat="server" ID="btnSignIn" type="button" OnClick="btnSignIn_Click">
</asp:Button>
</div>
</form>
あなたは、私が最初に設定フォームが「_blank」に属性をターゲットし、それを動的に変更する予定見ることができるように。
これは、背後にあるコードでは、私のonclickイベントである:
protected void btnSignIn_Click(object sender, EventArgs e)
{
if (Membership.Providers["CmsMembershipProvider"].ValidateUser(tbUsername.Text, tbPassword.Text))
{
Session["Username"] = tbUsername.Text.ToString();
FormsAuthentication.SetAuthCookie(tbUsername.Text, true);
Response.Redirect("../Pages/MyProjects.aspx");
}
else {
btnSignIn.OnClientClick = "openInSameWindow()";
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
}
、これは、単純なjsの関数である:
<script type="text/javascript">
function openInSameWindow() {
var myForm = document.getElementById('form1');
myForm.target = '_self';
}
</script>
ページは常に新しいタブ/ウィンドウで開きます。 ターゲットを「_self」に設定する前に、フォームが新しいページで既に開かれていることがわかりました。
この問題の最適な解決策は何ですか?
私は混乱しています。あなたのコードはクライアント上でJavascriptとして実行されているようですが、コードビハインドから_self "に目標を設定しています。 –
さて、私はjs関数をコードの背後から呼びます。これは技術的にはクライアント上で実行されますが、サーバ側で呼び出されます。 –