- PR -

自動でウインドウを閉じる

1
投稿者投稿内容
範子
常連さん
会議室デビュー日: 2005/01/15
投稿数: 46
投稿日時: 2005-03-16 21:55
いつもありがとうございます。

Page_load

で数秒後に自動的にそのページを閉じるようにするにはどのようにしたらよいのでしょうか。
ASP.NET(VB)でできればと思っています。

よろしくお願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-03-16 22:04
ASP.NETの範疇では無理。
クライアント(WEBブラウザ)の制御は原則としてJavaScriptで行うしかありません。
範子
常連さん
会議室デビュー日: 2005/01/15
投稿数: 46
投稿日時: 2005-03-16 22:58
甕星さま、ありがとうございます。

となると、ポップアップ画面で以下のようにボタンイベントでなくても、
自動的に数秒後に閉じるようにするにはどのようにしたらよいでしょうか。
あるいはHTML部に記述方法がありましたらお教えください。

Sub Button1_Click(sender As Object, e As EventArgs)
Dim a As New StringBuilder()
With a
.Append("<script language='javascript' type='text/javascript'>" & vbCrLf)
.Append(vbTab & "var features = 'Height=120,Width=280,Top=50,Left=50,dependent=yes,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,titlebar=no,toolbar=no';" & vbCrLf)
.Append(vbTab & "window.close();" & vbCrLf)
.Append("</" & "script>")
End With
RegisterClientScriptBlock("", a.ToString)
END SUB
よろしくお願いします。
momotchi
常連さん
会議室デビュー日: 2004/01/16
投稿数: 28
お住まい・勤務地: 宮城県
投稿日時: 2005-03-17 00:07
こんにちは。
setTimeout("close()",3000);
てな感じでしょうか。

#「常連さん」になってちょっとうれしい。

[ メッセージ編集済み 編集者: momotchi 編集日時 2005-03-17 00:09 ]
範子
常連さん
会議室デビュー日: 2005/01/15
投稿数: 46
投稿日時: 2005-03-17 00:20
momotchiさま。ありがとうございます。

ちょうど私も解決できたところでしたが、
.Append(vbTab & "setTimeout('window.close()',4000)" & vbCrLf)
このままですと「閉じますか?「はい」「いいえ」」を聞いてきて、
自動で閉じられないのですね。
過去スレで見たと思って検索したのですが出てきません。

何度もすみませんが、お教えくださいますでしょうか。
よろしくお願いします。

(いつのまにか常連ですが、レベルは初心者です(^^;)
範子
常連さん
会議室デビュー日: 2005/01/15
投稿数: 46
投稿日時: 2005-03-17 00:26
過去スレが見つかりました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16026&forum=7

これで解決です。
.Append(vbTab & "self.opener=self;" & vbCrLf)
.Append(vbTab & "setTimeout('self.close()',4000)" & vbCrLf)

お騒がせしました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-03-17 22:13
引用:

範子さんの書き込み (2005-03-17 00:26) より:

これで解決です。
.Append(vbTab & "self.opener=self;" & vbCrLf)
.Append(vbTab & "setTimeout('self.close()',4000)" & vbCrLf)


 これ、将来的に使えるままかどうかは、わかりませんから。

 つまり、window.openで開いたウインドウは、セッションが共有されます。それで、元となるウインドウをこれで消して、新しいウインドウを開き、セッションを共有して、そのセッション情報をどこかに垂れ流す・・・なんていうセキュリティホールになり得ます。(なってる?)
_________________
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-24 21:37
引用:

Jittaの書き込み(2005-03-17 22:13)より:
引用:

範子さんの書き込み (2005-03-17 00:26) より:
これで解決です。
.Append(vbTab & "self.opener=self;" & vbCrLf)
.Append(vbTab & "setTimeout('self.close()',4000)" & vbCrLf)


 これ、将来的に使えるままかどうかは、わかりませんから。


 IE7 で、「閉じますか?」の画面が出てくることを確認しました。

ついでに。
FireFox 1.5.0.1 では無効
Opera 8.53 では有効
Opera 9 では有効
1

スキルアップ/キャリアアップ(JOB@IT)