- - PR -
新規ウィンドウの呼び出しについて
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-10-30 16:00
よろしくお願いします。
「ボタンを押下したら新規ウィンドウを表示する」という処理を作成しているのですが、 なかなかうまくいきません。 Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click −−中略−− Page.RegisterStartupScript("画面遷移", _ "<script type='text/javascript'>var = newWin; newWin = window.open('test.aspx','test','width=300,height=300'); newWin.focus();</script>") End Sub とすると、 エラー:識別子がありません。 となってしまい困っています。 どこらへんがいけないのでしょうか?ご教授よろしくお願いします。 [ メッセージ編集済み 編集者: ごろう 編集日時 2007-10-30 16:01 ] | ||||||||||||
|
投稿日時: 2007-10-30 16:28
!? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-10-30 17:04
ご返事ありがとうございます。 var=newWin;を抜いたらJavaScriptのエラーは消えました。 ただ、focus()が効いていないのか、 一度新規ウィンドウは呼び出し元の手前に表示されますが、 すぐに呼び出し元が手前に表示されて見えなくなってしまいます。 なぜなのでしょうか? ちなみに、PostBackではない時に、 ロード時はログの出力とデータグリッドの作成しかしていないのです。 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化する ユーザー コードをここに挿入します。 If Not IsPostBack Then '開始ログ Log.Write(Me.GetType.Name, Reflection.MethodBase.GetCurrentMethod.Name) createGrid(STATUS1, MESSAGE1) createGrid(STATUS2, MESSAGE2) End If End Sub | ||||||||||||
|
投稿日時: 2007-10-30 17:09
すみません、 HTMLのほうのBodyタグで onload="document.Form1.txtBox.focus()"として、 テキストボックスにフォーカスを合わせていたのが原因のようです。 無事、新規ウィンドウを立ち上げる事ができました。 お騒がせしました。 | ||||||||||||
|
投稿日時: 2007-10-30 17:35
この場合の正解は「var=newWin;を抜く」ではなく「var=newWin; を var newWin; に変更する」じゃないでしょうか。 (どちらでも動きますが) 「マズいから取り除く」ではなく「なぜ var=newWin; がマズいのか」を理解してから修正しないとダメなんじゃないかと思います。 今はたまたまうまいこと動いているけれど、それがマズい原因を突き止めた上で対処法を含めて自分の知識として理解しなければ、今後も同じような障害に立ち会った場合にまた質問する羽目になりそうです。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2007-10-30 18:25
良いこと言いますね。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1