- - PR -
window.top.location.assignでのページ移動について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-05-01 16:54
vb.netで開発をしています。
Session変数に保存した認証内容がクリアされた時に、認証画面へ移動するコードを作成しています。Response.Redirectで移動すると、子画面の場合やフレームの場合、表示したいウィンドウで認証ページを表示させることができなかったりするので、Javascriptの「location.assign」を利用してページ変更を行なおうとしています。 デバックモードではなくブラウザから直接実行した場合、「書き込みできません」のエラーが表示されてしまいます。デバックモードでは問題ないのですが・・・。 ブラウザはIE6 SP2でセキュリティはデフォルトです。どこか設定を変更しておかないとlocation.assignは使用できないのでしょうか?また、良い代替案があれば、アドバイスよろしくお願いします。 Dim strURL As String Dim strRootURL As String Dim strHref As String Dim stbScript As New StringBuilder If IsNothing(Session("UserInfo")) Then 'ルートURL取得 strURL = Request.ServerVariables("URL") strRootURL = Left(strURL, InStr(2, strURL, "/", 1) - 1) strHref = "http://" + HttpContext.Current.Request.ServerVariables.Get("SERVER_NAME") & _ strRootURL & "/Login.aspx" 'JAVAスクリプト生成 stbScript.Append("<script language=""javascript"">" & vbLf) stbScript.Append("if (window.opener) " & vbLf) stbScript.Append("{ " & vbLf) stbScript.Append(" window.opener.top.location.assign('" & strHref & "');" & vbLf) stbScript.Append(" self.window.close();" & vbLf) stbScript.Append("} " & vbLf) stbScript.Append("else " & vbLf) stbScript.Append("{ " & vbLf) stbScript.Append(" window.top.location.assign('" & strHref & "');" & vbLf) stbScript.Append("} " & vbLf) stbScript.Append("</script>" & vbLf) '認証ページへ移動 HttpContext.Current.Response.Write(stbScript.ToString) Return False End If |
1