WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:NN4.7でのwindow.openの質問(2重起動防止)

さとじゅん [WriteDate : Mon Jun 18 13:11:21 2001]

現在、IE5.02、IE5.5、NetScape4.7を使用してWebシステムを開発しています。

2重起動防止のために、window.open関数でウィンドウ名を付けてログイン画面を
表示しています。
このことにより、Webシステムを使用中に、新しいブラウザからURLを指定
しても、使用中のブラウザがアクティブにされるので、2重起動防止ができました。

ただし、IEは希望通りの動作をするのですが、NNは動作しませんでした。

以下、作成したJavaScriptです。

<SCRIPT LANGUAGE="Javascript">
<!---
function FindWin(name)
{
   var wo = window.open("",name,"left=100000,top=100000");
   if(wo.location.href == "about:blank")
   {
       wo.close();
       OpenWin(name);
       return null;
   }
   else
   {
       wo.focus();
       return wo;
   }
}

function OpenWin(name)
{
   var wo = null;
   var url   = "http://testserver/pages/Login.jsp";
   var para = "toolbar=no,location=no,directories=no,menubar=no,width=790,height=542";

   wo = window.open(url, name, para);

   window.close();
}
//--->
</SCRIPT>


NNでは、 if(wo.location.href == "about:blank") の部分でプログラムが止まっていました。
IEでは、"about:blank" で OKでしたが、NNではブランクページの場合、アドレスに何も表示
されないので、"" や null で試しましたが、だめでした。

どうやら、wo.location.href が原因みたいです。
NN では、window.openで取得した戻り値の location.href は使用できないのでしょうか?

よろしくお願いします。


!!! [WriteDate : Tue Jun 19 08:56:34 2001]

確かに、ネスケにはaboutスキーマでなくaboutスキームはないみたいです。

そもそも、JavaScriptでの上記のような制御は、JavaScriptオフにされたら、どうしようもありません。

ですので、やはり、サーバー側で二重ログインをチェックされたらいかがでしょう。


さとじゅん [WriteDate : Tue Jun 19 09:50:54 2001]

!!!さん、回答ありがとうございます。

NNでは無理っぽいですね。

>ですので、やはり、サーバー側で二重ログインをチェックされたらいかかでしょうか。

そうですよね、本来ならばサーバーで二重ログインをチェックするのが妥当ですよね。
ただ、お客さまから以下のの要望がありました。

(1)ログイン画面を複数起動させたくない。(常にブラウザは1つしか表示しない)
(2)ログイン後に、新しいブラウザからURLを入力してもログイン画面を表示させない。
  既に起動した画面をアクティブにする。

よって、Window名を付けてブラウザの複数起動させなくしようと、安易に考えてしまいました。

ただ、これだと既にログイン後の画面から作業している途中で、新しいブラウザを起動して
URLを指定すると、既存のブラウザにログイン画面が表示されます。
そりゃそうですよね、ブラウザのWindow名が同じですからね。

そこで、JavaScriptで何とかしようと思ったのです。

う〜ん、難しい....もうしこし考えてみます。
あとは、!!!さんのアドバイスを代替案としてお客さまと検討してみます。


バギンズ [MAIL] [URL] [WriteDate : Tue Jun 19 13:18:29 2001]

>(1)ログイン画面を複数起動させたくない。(常にブラウザは1つしか表示しない)

クライアントマシンに、ウィンドウを監視してブラウザが複数起動したら後から起動したほうを強制的に終了させるプログラムを入れるしかないと思います。

>(2)ログイン後に、新しいブラウザからURLを入力してもログイン画面を表示させない。

(1)が可能なら(2)は不要ですね。

>NNでは無理っぽいですね。
というか、IEとネスケを両方起動した場合はどうするつもりだったのでしょう?


さとじゅん [WriteDate : Wed Jun 20 14:53:44 2001]

バギンズさん、アドバイスありがとうございます。

>というか、IEとネスケを両方起動した場合はどうするつもりだったのでしょう?

考慮してませんでした。
やっぱり、仕様を考え直します。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World