- - PR -
ブラウザ名を使って二重起動を抑止できないでしょうか
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-01 20:33
いつもお世話になっています。
Webアプリを開発しているものです。 クライアント内におけるWebアプリの二重起動を抑止したいと 考えているのですが、JavaScript(又はブラウザの仕様?)で わからないことがあります。 あるブラウザから ●=window.open(url,■,para); で、名前■を指定した子ブラウザ●を表示できるかと思います。 この子ブラウザ●を表示したまま、新たに別のブラウザを起動した時 その別ブラウザから名前■を使って子ブラウザ●が既に表示されている のかどうかを判定できないものでしょうか? ご存知の方がいらっしゃいましたらご教授をお願いしたいと思います。 よろしくお願いします。 | ||||
|
投稿日時: 2003-10-01 21:37
aoppです
if (●.closed) alert("閉じられてます"); else alert("開かれてます"); でいかがかな | ||||
|
投稿日時: 2003-10-02 00:54
別にブラウザを起動した場合JavaScriptでの判定は難しいかと思います。 ログオン、ログオフ操作によって制御されていれば、 サーバ側で判定することもできますが、ログオフ操作をせずに[X]ボタンで 閉じられることもあるため、サーバ側ではブラウザが閉じられたことまでを 判定することはできません。 二重起動することでどのような不都合なことが発生するかを明確にして その問題を解決していくほうが近道のような気がします。 | ||||
|
投稿日時: 2003-10-02 09:19
ブラウザ限定でよければ・・・
という風に開いてみて開けたらその名前がないと判断できます。 確かIE5.5以降だったかな? | ||||
|
投稿日時: 2003-10-02 09:43
なるほど!確かに動きますね。
URLに空文字列指定するのはやったこと無かったです。 既に開いている場合、ウィンドウの参照のみ取得するようになっているんですかね。 | ||||
|
投稿日時: 2003-10-02 10:11
>既に開いている場合、ウィンドウの参照のみ取得するようになっているんですかね。
そのとおりです。 ただブラウザ依存が強かった気がします。 あと不具合としてhttpsの場合はドメインが違う(urlが空白のため)のセキュリティの警告が出ます。 元々は残ってたら閉じるためにしか使ってなかったのでブラウザによっては親子関係が崩れるかも知れません(このスクリプトを最後に使った側が呼び出したことになる) | ||||
|
投稿日時: 2003-10-02 12:59
AOPPさん、NYRLさん、ぴでさん
ご返答ありがとうございます。 NYRLさんのやり方で試してみたところ やりたいことがうまくできました。 「既存のブラウザ名称を指定してopenすると既存ブラウザの 参照を取得する」という機能を利用してるということですね? 起動ブラウザのURLに空文字列を指定することで、 既存のブラウザがない場合のlocation.hrefがabout:blank となることを判定に使用できる。 …であってますでしょうか? とりあえず、条件と問題も私の範囲に影響なさそうなので 大丈夫そうです。本当に助かりました。 [ メッセージ編集済み 編集者: ガテン系 編集日時 2003-10-02 13:00 ] | ||||
|
投稿日時: 2003-10-02 14:17
[QUATE]
「既存のブラウザ名称を指定してopenすると既存ブラウザの 参照を取得する」という機能を利用してるということですね? 起動ブラウザのURLに空文字列を指定することで、 既存のブラウザがない場合のlocation.hrefがabout:blank となることを判定に使用できる。 …であってますでしょうか? [/QUATE] そのとおりです。 |
1