プロが教える店舗&オフィスのセキュリティ対策術

画面の2重起動をチェックする方法について
PHPかJavaScriptどちらで実現できるかわかりませんが...
【確認】ボタンを押下で【確認画面】を別画面で表示します。
既に【確認画面】が起動されていたら
【既に表示されています】OR【起動されている画面を前面に表示】など
できないかなぁと思っています。
このようなご経験がある方、よろしくお願いします。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="content-style-type" content="text/css">
<title>2重起動チェックテスト</title>

<script type="text/javascript">

function kogamen_check() {
//****************************************************
//ここで確認画面(kakunin.php)が起動済かチェックできないでしょうか?
//****************************************************
}
</script>

</head>
<body>
<table align = "center" cellspacing="0">
<form name="form1" action="kakunin.php" method="post" target="_blank" onSubmit="return kogamen_check()">
<tr>
<td align="right">項目1</td>
<td><input type="text" name="item1" size="10" maxlength="10"><br>
</tr>
<tr>
<td align="right">項目2</td>
<td><input type="text" name="item2" size="10" maxlength="10"><br>
</tr>
<tr>
<td><br></td>
<td align="center">
<input type="submit" name="kakunin" value="確認">
<input type="button" value="メニューへ" onClick="parent.location = 'menue.php'">
</td>
</tr>
</form>
</table>
</body>
</html>

A 回答 (1件)

あまりスマートな方法ではないかも知れませんが、以下のようにする事で可能です。


追加変更箇所をご確認ください。

<script type="text/javascript">
var kakunin_window;
function kogamen_check() {
//****************************************************
//ここで確認画面(kakunin.php)が起動済かチェックできないでしょうか?
//****************************************************
if (kakunin_window){
if (kakunin_window.closed){
kakunin_window = window.open("kakunin.php","new");
}else{
alert("すでに開いています");
}
}else{
kakunin_window = window.open("kakunin.php","new");
}
}
</script>

<form name="form1" action="" method="post" target="_blank">

<input type="button" name="kakunin" value="確認" onClick="kogamen_check()">

form の action で submit しないで、確認ボタンが押されたチェックの時に子画面を開いた方が手続き(順次)処理しやすくなり、チェック結果によってメッセージを表示したり、子画面を開いたりと言った分岐処理できます。
子画面のオブジェクトが生成されていて、かつ、そのウインドウが閉じられていなければ、期待のメッセージを表示し、そうでなければ子画面を開きます。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。

大変参考になりました。

お礼日時:2009/09/18 00:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!