- - PR -
[ASP.NET]JavaScriptのページ遷移について(A画面からB画面、B画面からC画面を開きたい)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-30 04:32
A画面のハーパーリンクからB画面を開き、B画面のボタンクリックイベントで
C画面を開く処理ではまっています。 具体的にはA画面は検索結果で、メールアドレスのハイパーリンクでB画面の メール送信画面が開き、B画面ではボタンクリックイベントでファイル選択 画面を開く処理を行いたいのですが、C画面のwindow.openerで「nullまたは オブジェクトではありません」のエラーが発生します。 画面Cを開く画面Bのフォーム名、テキストボックス名は確認したところ 間違いなく指定してあります。 試しにA画面を介さずにB画面からC画面を開くとうまくいきます。 A画面からですとB画面からC画面を開く際に新しいWindowで開かずに BページのWindowに開かれてしまいます。 具体的には次のようなコードを書いています。 【A画面】 次のコードで検索結果のメールアドレスにB画面を開くURLを作成しています。 Dim strScript As New StringBuilder With strScript .Append("javascript:var w=window.open('MailSend.aspx?mail=") .Append(wkMail) .Append("',null,'resizable=yes,width=700,height=600,location=no');") End With '分類見出し行はURLを空白とし、ハイパーリンクを解除する。 If drow("ID") = "-1" Or wkMail.ToString = String.Empty Then Return String.Empty Else Return strScript.ToString End If 【B画面】 次のコードで添付ファイル参照画面を開く処理をしています。 Sub Button_Command(ByVal s As Object, ByVal e As CommandEventArgs) WriteScript(e.CommandArgument) End Sub Sub WriteScript(ByVal strSource As String) Dim strFeatures As String = "Height=50,Width=450,Top=50," & _ "Left=50,dependent=yes,location=no,menubar=no," & _ "resizable=yes,scrollbars=no,status=no," & _ "titlebar=no,toolbar=no" Dim sbScript As New StringBuilder With sbScript .Append("<script language='javascript'>" & vbCrLf) .Append(vbTab & "window.open('AttachmentFileDialog.aspx',null,'" & _ strFeatures & "');" & vbCrLf) .Append("</" & "script>") End With RegisterClientScriptBlock("openwin", sbScript.ToString) End Sub 【C画面】 C画面の確定後のイベントは次の通りです。 Sub btnOk_Click(ByVal s As Object, ByVal e As EventArgs) Dim strFile As String = String.Empty If Not (fileUpload.PostedFile Is Nothing) Then strFile = fileUpload.PostedFile.FileName strFile = strFile.Replace("\", "\\") End If Dim sbScript As New StringBuilder With sbScript .Append("<script language='javascript'>" & vbCrLf) .Append(vbTab & "window.opener.frmMail.txtAttachment.value = '" & strFile & "';" & vbCrLf) .Append(vbTab & "window.close();" & vbCrLf) .Append("</" & "script>") End With RegisterClientScriptBlock("closewin", sbScript.ToString) End Sub どうぞよろしくお願いします。 |
|
投稿日時: 2005-07-30 05:36
window.open の第2引数って、window の名前でしたっけ?これ、きちんと名前付けないと、いくつでも開いてしまいません?
そういう仕様なら、それでいいけど。。。 _________________ |
|
投稿日時: 2005-07-30 08:38
Jittaさん ご回答ありがとうございました。
Jittaさんのご指摘通りでした。 何気なく第2引数を null にしていたのがまずかったようでした。 修正したらうまく動きました。 以前投稿したときもJittaさんに回答していただきました。感謝です。 今後ともよろしくお願いします。 |
1