open()で開くウィンドウを常に手前に表示させるには?

[上に] [前に] [次に]
匿名希望2 [E-Mail] [HomePage] 1999/09/14(火) 01:23:12
Q&A集の中に同じ質問があり
「IE3ではまだサポートされていませんが、open()の後にwindow.focus()メソッドを使えば可能です。 」
と回答されてあるのですが、もう少し詳しく説明が欲しいのですが。
それとやっぱりIEではだめなのでしょうか?

Nobu3 [E-Mail] [HomePage] 1999/09/14(火) 03:13:11
newwin = window.open(url);
newwin.focus();

こんなもんで、いかがです?
開いたウィンドウを変数にして、それに対してフォーカスをあてる。

IE4以降なら大丈夫なはずですけど?

匿名希望2 1999/09/14(火) 09:04:27
<SCRIPT LANGUAGE="javascript"><!--
function ex1ToFront() {
        newWindow = window.open('./kuji.html','pagewin','alwaysRaised=yes')
        newWindow.focus();
}
//--></SCRIPT>
</HEAD><BODY>
<INPUT TYPE="button" VALUE="GO" onclick="javascript:ex1ToFront()">

こんな感じなんですけど
newWindow.focus();
でエラーが出ちゃいます。

どこがいけないのでしょう?

匿名希望2 1999/09/14(火) 10:20:49
上記説明不足でした。
1度目はOK(開く)ですが2度目にエラーが出ます。
また過去に「ひろぼー」さんの解答で似たような物がありましたが
<A HRE="http://www.geocities.co.jp/SiliconValley-PaloAlto/6444/ans2.htm">His HP</A>
開いた窓に外のHTMLファイルを表示させようとすると
(つまり---
<script language="JavaScript"><!--
function openwin(message) {
  w = window.open("", "msg2", "alwaysRaised=yes");
  w.focus();
  w.document.open();
  w.document.write(message);
  w.document.close();
}
// --></script>

<a href="JavaScript:openwin(&quot;<META HTTP-EQUIV=Refresh CONTENT=0;URL=http://www.hoge.co.jp/kuji.cgi>&quot;)">GO</a>
にすると同じ結果になってしまいます。)

やはり「ひろぼー」さんのように
<a href="JavaScript:openwin(&quot;ここの中でページを書いてしまう&quot;)">GO</a>
としなければいけないのでしょうか?

変な質問ですいません。(Nobu3さん解答ありがとうございます)

匿名希望2 1999/09/14(火) 12:06:20
追記2
もう一つ別に過去にほぼ同じ内容の質問があり
いろいろと試してみましたが、やはり思うような結果が得られません。
(とほほさんの解答にあった
function openwin(url) { window.open(url, "xx").focus(); }
も試してみました。)

やりたいことは以下の通りです。
一つのページにリンク釦が多数ありそれぞれ違うURLにリンクされて
いるが窓は同じ窓を使いたい。
そしてその窓の仕様も指定したまま使いたい。
(上記のとほほさんの例だとこれがうまくいかない)
またリンクをクリックした際、毎回小窓にフォーカスを当てたい。
(常に前に無くてもフォーカスが当たれば良いです)
以上です。

どうかどなたかよろしくお願いいたします。

Nobu3 [E-Mail] [HomePage] 1999/09/14(火) 13:02:22
う〜ん。
var newwin;
function winopen(url,nm,st){
if(newwin){
if(!newwin.closed)
newwin.focus();
}
}
newwin=window.open(url,nm,st);
}

これではどうでしょう?

匿名希望2 1999/09/15(水) 13:37:46
<script language="JavaScript"><!--
var newwin;
function winopen(url,"msg2", "alwaysRaised=yes"){
if(newwin){
if(!newwin.closed)
newwin.focus();
}
}
newwin=window.open(url,"msg2", "alwaysRaised=yes");
}
// --></script>

で、「識別子がありません」のエラーです(^^;

Aurai 1999/09/15(水) 14:36:43
NC4.6 for Win32 でテストしてみました
特に問題なくfocus()できました
http://www.fureai.or.jp/~yomorita/sand/webmake/javascript/window-focus.htm

匿名希望2 1999/09/16(木) 22:50:52
う〜ん
IE4.0使うと、クリック2回目まではいいのですが
3回目クリックするとスクリプトエラーが発生してしまいます。
うーん。。。

とりあえず 外部にあるHTMLを取りこむのではなく
同一ページ内に書きこむ方法で対処することにします。

Nobu3さん Auraiさん どうもありがとうございました。m(_ _)m

Nobu3 [E-Mail] [HomePage] 1999/09/17(金) 15:26:28
すいません。カッコ一つ抜けてます (^^;;;

if(!newwin.closed)

の後ろに「{」が必要です。
で、ちょっと変更して実験したのを書いておきます。

var newwin;
function winopen(url){
if(newwin){
if(!newwin.closed){
newwin.location.href=url;
newwin.focus();
}else{
newwin=window.open(url,'subWindow','scrollbars');
}
}else{
newwin=window.open(url,'subWindow','scrollbars');
}
}

コードがダブってしまって面白くないのですけど、エラーは出ないと思います。たぶん。
ウィンドウの形式と、名前は、スクリプトを直に変更する必要があります。
ちなみにこのソースでは、「alwaysRaised=yes」は必要ありません。

[上に] [前に] [次に]