C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: ウィンドウをアクティブで開きたい


(過去ログ 102 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■60929 / inTopicNo.1)  ウィンドウをアクティブで開きたい
  
□投稿者/ AMI (12回)-(2011/07/26(Tue) 16:43:21)

分類:[.NET 全般] 

開発環境
OS: WindowsXP SP3
言語: VisualStudio2010 VB
Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel
Microsoft .NET Framework
Version 4.0.30319 RTMRel

コマンドボタンを押したときに
ウィンドウを画面推移するようにしております。
そのなかで、開いた先のウインドウを
アクティブにしたいのですが、下記コードで
実行した場合、開きはしますが、アクティブになりません。
引数がなにか必要なのでしょうか?
ちなみに試験で使用しているブラウザは
IE8.0になります

scriptStr = "<script type='text/javascript'>"
scriptStr += "window.open('AAAA.aspx','_blank','width=600,height=600,return false');"
scriptStr += "</script>"
ClientScript.RegisterStartupScript(Me.GetType(), "Default2画面", scriptStr)

よろしくお願いします

引用返信 編集キー/
■60930 / inTopicNo.2)  Re[1]: ウィンドウをアクティブで開きたい
□投稿者/ AtoB (1回)-(2011/07/26(Tue) 17:21:36)
No60929 (AMI さん) に返信
>         scriptStr = "<script type='text/javascript'>"
>         scriptStr += "window.open('AAAA.aspx','_blank','width=600,height=600,return false');"
>         scriptStr += "</script>"
>         ClientScript.RegisterStartupScript(Me.GetType(), "Default2画面", scriptStr)

javascriptのwindow.openところを以下のようにしてみてはどうでしょう。

win = window.open(....);
if (win.focus){
   win.focus();
}

あと、半角カナの使用はやめましょう(利用方法/規約参照のこと)。

引用返信 編集キー/
■60946 / inTopicNo.3)  Re[2]: ウィンドウをアクティブで開きたい
□投稿者/ AMI (13回)-(2011/07/27(Wed) 09:41:43)
早速のお返事ありがとうございます。
半角カナの件気をつけます。

下記のようにコード書き直して、再度ひらきましたが、
やはり挙動は同じで、アクティブになりません。
Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView2.SelectedIndexChanged
scriptStr = "<script type='text/javascript'>"
scriptStr += "win = window.open('AAAA.aspx','_blank','width=600,height=600,return false');"
scriptStr += "if (win.focus){"
scriptStr += "win.focus();"
scriptStr += "}"
scriptStr += "</script>"
End sub


> ■No60930 (AtoB さん) に返信
> ■No60929 (AMI さん) に返信
>> scriptStr = "<script type='text/javascript'>"
>> scriptStr += "window.open('AAAA.aspx','_blank','width=600,height=600,return false');"
>> scriptStr += "</script>"
>> ClientScript.RegisterStartupScript(Me.GetType(), "Default2画面", scriptStr)
>
> javascriptのwindow.openところを以下のようにしてみてはどうでしょう。
>
> win = window.open(....);
> if (win.focus){
> win.focus();
> }
>
> あと、半角カナの使用はやめましょう(利用方法/規約参照のこと)。

引用返信 編集キー/
■60948 / inTopicNo.4)  Re[3]: ウィンドウをアクティブで開きたい
□投稿者/ AtoB (2回)-(2011/07/27(Wed) 10:15:59)
2011/07/27(Wed) 10:17:54 編集(投稿者)

(変な日本語があったので修正しました)
No60946 (AMI さん) に返信

'return false'というものがwindow.openメソッドのパラメータに入っていますが、
javascriptのwindow.openメソッドに'return false'というパラメータって聞いたことがないのですが。

戻り値にfalseを返す必要があるのなら(例えば、アンカーのonclickでのjavascriptの呼び出しなど、
javascriptを実行させた場合に、本来のアンカーの機能をさせないために使用します)、普通は
以下のようにすると思いますが。

window.open('AAAA.aspx','_blank','width=600,height=600');
return false;

質問のケースでは少なくともreturn falseは不要なのでは?
引用返信 編集キー/
■60950 / inTopicNo.5)  Re[4]: ウィンドウをアクティブで開きたい
□投稿者/ AMI (14回)-(2011/07/27(Wed) 10:43:54)
お返事ありがとうございます。
たしかにreturn false はwindows.openのパラメータにないみたいですね。
いろんなサンプルを参考にして
していますが、やはりうまくいきません・・
ttp://amenti.usamimi.info/windowopen.html

「〜.aspx」
ファイルを開くのは通常のhtmlを開くのとは違うのでしょうか?

> 'return false'というものがwindow.openメソッドのパラメータに入っていますが、
> javascriptのwindow.openメソッドに'return false'というパラメータって聞いたことがないのですが。
>
> 戻り値にfalseを返す必要があるのなら(例えば、アンカーのonclickでのjavascriptの呼び出しなど、
> javascriptを実行させた場合に、本来のアンカーの機能をさせないために使用します)、普通は
> 以下のようにすると思いますが。
>
> window.open('AAAA.aspx','_blank','width=600,height=600');
> return false;
>
> 質問のケースでは少なくともreturn falseは不要なのでは?
引用返信 編集キー/
■60953 / inTopicNo.6)  Re[5]: ウィンドウをアクティブで開きたい
□投稿者/ AtoB (3回)-(2011/07/27(Wed) 12:40:30)
No60950 (AMI さん) に返信

> 「〜.aspx」
> ファイルを開くのは通常のhtmlを開くのとは違うのでしょうか?

〜.aspxのレスポンスはhtmlですよね?そうであるならばhtmlと同じはずです。
(試しに、window.openの第一引数をhtmlファイルにしてみれば分かります。)

あとは、.aspx内部で何かやっていないかどうか。
引用返信 編集キー/
■60956 / inTopicNo.7)  Re[6]: ウィンドウをアクティブで開きたい
□投稿者/ AMI (15回)-(2011/07/27(Wed) 13:37:09)
お返事ありがとうございます
いろいろためしてわかったことを記載します。
html上で直接
window.openをした場合は、きちんとオープンした部分が、
アクティブになります

下記のようにASP.NET上でVBコードを書いた場合は、
htmlでもaspxでもアクティブには開きません。
Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView2.SelectedIndexChanged
scriptStr = "<script type='text/javascript'>"
scriptStr += "win = window.open('AAAA.aspx','_blank','width=600,height=600,return false');"
scriptStr += "if (win.focus){"
scriptStr += "win.focus();"
scriptStr += "}"
scriptStr += "</script>"
End sub
gridviewでの処理が問題しているとおもい、
新たにコマンドボタンに上記のコードを記載しましたが、
結果は一緒でした。

vbコード上では難しいのでしょうか?

引用返信 編集キー/
■60965 / inTopicNo.8)  Re[7]: ウィンドウをアクティブで開きたい
□投稿者/ AtoB (4回)-(2011/07/27(Wed) 16:54:22)
No60956 (AMI さん) に返信

ところで、最初の質問の

> ClientScript.RegisterStartupScript(Me.GetType(), "Default2画面", scriptStr)

のRegisterStartupScriptメソッドの引数の中身がよく分からないんだけど、
以下サイトの方法ではだめですか?

http://www.atmarkit.co.jp/fdotnet/dotnettips/160regscript/regscript.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -