- PR -

新規ウィンドウの呼び出しについて

1
投稿者投稿内容
ごろう
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 50
お住まい・勤務地: 神奈川県横浜市 横浜駅の海方面
投稿日時: 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 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-30 16:28
引用:

ごろうさんの書き込み (2007-10-30 16:00) より:

Page.RegisterStartupScript("画面遷移", _
"<script type='text/javascript'>var = newWin; newWin = window.open('test.aspx','test','width=300,height=300'); newWin.focus();</script>")


!?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ごろう
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 50
お住まい・勤務地: 神奈川県横浜市 横浜駅の海方面
投稿日時: 2007-10-30 17:04
引用:

じゃんぬねっとさんの書き込み (2007-10-30 16:28) より:
引用:

ごろうさんの書き込み (2007-10-30 16:00) より:

Page.RegisterStartupScript("画面遷移", _
"<script type='text/javascript'>var = newWin; newWin = window.open('test.aspx','test','width=300,height=300'); newWin.focus();</script>")


!?




ご返事ありがとうございます。
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
ごろう
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 50
お住まい・勤務地: 神奈川県横浜市 横浜駅の海方面
投稿日時: 2007-10-30 17:09
引用:

ごろうさんの書き込み (2007-10-30 17:04) より:
引用:

じゃんぬねっとさんの書き込み (2007-10-30 16:28) より:
引用:

ごろうさんの書き込み (2007-10-30 16:00) より:

Page.RegisterStartupScript("画面遷移", _
"<script type='text/javascript'>var = newWin; newWin = window.open('test.aspx','test','width=300,height=300'); newWin.focus();</script>")


!?




ご返事ありがとうございます。
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



すみません、
HTMLのほうのBodyタグで onload="document.Form1.txtBox.focus()"として、
テキストボックスにフォーカスを合わせていたのが原因のようです。
無事、新規ウィンドウを立ち上げる事ができました。
お騒がせしました。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-10-30 17:35
引用:

ごろうさんの書き込み (2007-10-30 17:04) より:

var=newWin;を抜いたらJavaScriptのエラーは消えました。


この場合の正解は「var=newWin;を抜く」ではなく「var=newWin; を var newWin; に変更する」じゃないでしょうか。
(どちらでも動きますが)

「マズいから取り除く」ではなく「なぜ var=newWin; がマズいのか」を理解してから修正しないとダメなんじゃないかと思います。
今はたまたまうまいこと動いているけれど、それがマズい原因を突き止めた上で対処法を含めて自分の知識として理解しなければ、今後も同じような障害に立ち会った場合にまた質問する羽目になりそうです。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-30 18:25
良いこと言いますね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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