今だけ人気マンガ100円レンタル特集♪

まず親ウィンドウから、子ウィンドウを新しく開きます。
そして、子ウィンドウを常に手前で表示させて、親ウィンドウは触れない、というPAGEを作成したいのですがわかりません。
どなたか教えてください。

A 回答 (2件)

「モーダル」で検索してみてください。



1度ひらいた子ページを閉じるまで他のページの操作をできなくされることを言います。

ちなみに逆は「モーダレス」です。

この回答への補足

とても参考になりました。しかし、操作されないに加えて、子ウィンドウでページ移動を行うことが可能になる方法はないでしょうか?よろしければ、再度よろしくお願いします。

補足日時:2005/12/27 16:58
    • good
    • 0

子ウィンドウに以下の記述をすれば常に前面表示されます。


<body onBlur="focus()">

この回答への補足

そのやり方だとたしかにフォーカスは当たっているのですが、ウィンドウが手前に表示されないのです。もしかしたらPCの設定などが原因でそうなっているのかもしれません。そこで、なぜ表示が行われないか、原因がわかるようでしたら、再度ご教授よろしくお願いします。

補足日時:2005/12/28 23:27
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qwindow.Openをモーダルにできますか?

こんにちは。

表題のように、Window.Openをモーダルにしたいのです。

親フォームからサブフォームを開き、
そこでクリックで選択された値を親フォームに展開させる
という処理をしたいのです。

ShowModalDialogだと、そのサブフォームで入力された値を親フォームに表示することができないのではないか・・・と思っています。

どなたかいい方法をご存知の方、
どうか教えてください。
よろしくお願いします。

Aベストアンサー

> ShowModalDialogだと、そのサブフォームで入力された値を親フォームに表示することができないのではないか

IE依存でかまわない、ということですね。

showModalDialog() は、表示したダイアログから、戻り値を返すことができます。

ダイアログの方では、window.returnValue という window オブジェクトの
プロパティがあるので、これに値を設定します。

親の方では、

ret = showModalDialog(…);

として、その値を受け取ります。

複数の数値のやり取りがあるのであれば、その window.returnValue に設定
するものを Object や Array にすれば良いですね。


因みに表題の

> Window.Openをモーダルにしたい

はやめておいた方が良いです。

あるウィンドウを常に一番上に表示することは可能ですが、そのウィンドウが
複数あると破綻します。

モーダルなウィンドウが、動作として必要なのであれば、新しくウィンドウを
開くのではなく、切り替えるようにインターフェースを考え直すべきだと
思います。

# もしくは applet を作るか

> ShowModalDialogだと、そのサブフォームで入力された値を親フォームに表示することができないのではないか

IE依存でかまわない、ということですね。

showModalDialog() は、表示したダイアログから、戻り値を返すことができます。

ダイアログの方では、window.returnValue という window オブジェクトの
プロパティがあるので、これに値を設定します。

親の方では、

ret = showModalDialog(…);

として、その値を受け取ります。

複数の数値のやり取りがあるのであれば、その window.return...続きを読む

Qモーダルダイアログウィンドウの改修方法

現在メンテナンスを担当しているWebアプリが
モーダルダイアログウィンドウ(showModalDialog)を多用しています。

このシステムは画面は jsp と javascript で、後ろはJavaです。


特に、伝票の入力処理では各行の商品IDを入力するときにモーダルダイアログウィンドウ
が開いて商品一覧が表示され、その中から商品を選択すると親画面に戻って商品情報が
表示される、という仕組みになっています。

親画面自体は開かれたままなので、画面遷移の考慮をしないで済む、という点では
シンプルなプログラムになっています。

ところがこの「showModalDialog()」、ブラウザによって若干挙動が異なったり、
将来廃止されるらしい、とのことで改造を迫られています。

モーダルダイアログウィンドウを使わない設計がいいとは思うんですが、
どのような仕組みに変えた方がよいでしょうか。

例えば画面遷移で商品を選択して戻るような仕組みにすると、途中まで入力した伝票情報を
すべて保持したまま遷移しなければなりません。

どのような仕組みがよいかご意見をお願いします。

現在メンテナンスを担当しているWebアプリが
モーダルダイアログウィンドウ(showModalDialog)を多用しています。

このシステムは画面は jsp と javascript で、後ろはJavaです。


特に、伝票の入力処理では各行の商品IDを入力するときにモーダルダイアログウィンドウ
が開いて商品一覧が表示され、その中から商品を選択すると親画面に戻って商品情報が
表示される、という仕組みになっています。

親画面自体は開かれたままなので、画面遷移の考慮をしないで済む、という点では
シンプルなプログラムになって...続きを読む

Aベストアンサー

以下サンプルとして超雑にかいておきます。
あくまでフローをみるサンプルなのではしょっているので
そのままでは実用には耐えないと思います
(たぶんjQueryあたりを使えばもう少しらくにいけるとおもいます)

<html>
<head>
<script>
function test(){
var list={"":"選んでね!","x":"x","y":"y","z":"z"};
var nWin=document.createElement("div");
nWin.id="nWin";
var n=document.createTextNode("test");
nWin.appendChild(n);

var s=document.createElement("select");
for(var i in list){
var o=document.createElement("option");
o.setAttribute("value",i);
o.appendChild(document.createTextNode(list[i]));
s.appendChild(o);
}
s.onchange=function(){
document.getElementById("hoge").value=this.value;
nWin.parentNode.removeChild(nWin);
};
nWin.appendChild(s);

document.getElementsByTagName("body")[0].appendChild(nWin);
}
</script>
<style>
#nWin{
height:300px;
width:300px;
background-Color:red;
z-index:2;
position:absolute;
top:100px;
left:100px;
}
.testarea{
width:100%;
height:100px;
}
.yellow{background-Color:yellow;}
.lime{background-Color:lime;}
.aqua{background-Color:aqua;}
</style>
</head>
<body>
<div class="testarea yellow">test</div>
<div class="testarea lime">
<input type="text" name="hoge" id="hoge">
<input type="button" value="test" onclick="test()">
</div><div class="testarea aqua">test</div>
</body>

nWinをwindow.openで処理しても同じような感じになると思います

以下サンプルとして超雑にかいておきます。
あくまでフローをみるサンプルなのではしょっているので
そのままでは実用には耐えないと思います
(たぶんjQueryあたりを使えばもう少しらくにいけるとおもいます)

<html>
<head>
<script>
function test(){
var list={"":"選んでね!","x":"x","y":"y","z":"z"};
var nWin=document.createElement("div");
nWin.id="nWin";
var n=document.createTextNode("test");
nWin.appendChild(n);

var s=document.createElement("select");
for(...続きを読む

Q子ウィンドウの存在確認

子ウィンドウが開いていない場合にのみ子ウィンドウを開くような下記の処理があるとします。

function OpenSubWindow()
{
if(!w.closed()){
alert('閉じろ!');
}else{
w = window.open("a.html","sub","resizable=no,scrollbars=no");
}
}

この場合、当然のことですが、変数wはelseの中で初めて初期化されるため、ifの条件でオブジェクトが存在しないことによりエラーが発生します。

でも、"sub"というname属性のウィンドウが開いているかどうかを確認したいのですが、どうすればよいのでしょうか?wを初期化する方法が何かあるのでしょうか?それとも、subウィンドウのopen/closeの状態を管理するロジックを作りこまないといけないのでしょうか?

Aベストアンサー

細かなロジックを考える必要はありませんよ。
w がオブジェクトかどうか分からない時点で w.closed を評価するのがマズイだけですから、評価の順番を変えればいいんです。

var w;
function OpenSubWindow() {
  if (!w || w.closed)
    w = window.open("a.html", "sub", "resizable=no,scrollbars=no");
  else
    alert("閉じろ!");
}

ちなみに closed はメソッドではなくプロパティですので、w.closed() ではエラーとなります。
また、既に開いているときの処理は
  w.focus();
とすれば子ウィンドウがアクティブになるのでオススメです。

Q子→親ウインドウへデータを受け渡し、子ウィンドウを閉じる。

このような処理はできないでしょうか?

子ウィンドウはコード番号の検索用。該当のコードのリンクをクリックすると、そのコード番号を親ウィンドウのテキストボックスへ落とし込む。そのタイミングで、子ウィンドウは閉じる。
子→親ウインドウへのデータの受け渡しと、子ウィンドウのクローズを同時に行うようなイメージです。
よろしくお願いします。

Aベストアンサー

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<th>顧客名称</th>
</tr>
<tr>
<td><a href="javascript:ich('ABC商店')">0001</a></td>
<td>ABC商店</td>
</tr>
<tr>
<td><a href="javascript:ich('DEF商店')">0002</a></td>
<td>DEF商店</td>
</tr>
</table>

もしくはNo.1様の言うようにidを設定して
【親画面】
<input type="text" name="kokyaku_cd" size="10" id="kokyaku_cd">

【子画面 function内】
window.opener.document.getElementById("kokyaku_cd").value=n;

でできると思います

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<t...続きを読む

Qwindow.openで値の渡し方を教えてください。

画像をクリックするとwindow.htmlで新しいウインドウが開き、「IMG/AAA.jpeg」という値をwindow.htmlに渡して、画像を表示したいのですが、どのようにすればよいでしょうか。

画像をクリック(photoOpnに値が渡される)→関数photoOpn実行(window.htmlに値が渡される)→window.html表示(値を受け取り画像を表示)といった具合にしたいのですが・・・。

<html>
<head>
<script type="text/javascript"><!--
photoOpn(value){
window.open("window.html");
}
//--></script>
</head>

<body>
<a href="javascript:photoOpn('IMG/AAA.jpeg')"><img src="IMG/AAA.jpeg"></a>
</body>

ここまではやってみたのですが、window.htmlにどのように値を渡せばいいのでしょうか。

Aベストアンサー

>>1
> 結構複雑になってしまいますね。Javascriptを勉強してまもないので
> 難しく感じてしまいます(笑)
> 図々しいとは思いますが、少しながら関数等のscriptの説明をして
> 頂けませんでしょうか。

すみませんでした。
自分でやるときもなかなかコメントつける癖がなくて暫く経ったら
自分の書いたコードさえ解読できなくなることが多々あったりします。
それでも、コメント書くのが面倒だったりそもそも適切なコメントが
思い浮かばずつい、省略してしまうことが多くて自分でも困っていたり
します。(^_^;

やっていること自体は決して複雑ではないはずなんですけど、確かに
難しいかも知れませんね。

// URL エンコード
url = encodeURIComponent(url);

これはURLエンコードしています。
クエリに非ASCII文字列などを含めるときはURLエンコードします。
スラッシュはディレクトリ区切りとしても使用されているのでURLと
しては使用可能ですが念のためにURLエンコードしています。
因みにJavaScriptにはURLエンコードする関数がいくつかありますが
スラッシュをエンコードできるのは上記の関数のみのようです。
また、日本語などの文字列が含まれる場合、元の文字列が何であっても
強制的にUTF-8としてURLエンコードしてしまいますのでご注意ください。

window.open('window.html?url=' + url);

これはそのまま、URLにクエリを追加して渡しているだけです。

var query = location.search.substr(1).split('&');

ここが一番分かりにくい可能性がありますが

location.search

はURLのクエリの部分(?含む)を文字列オブジェクトとして返します。

.substr(1)

は1文字目(?を飛ばす)移行を取得しています。

.split('&')

は '&' を区切りとして分割し配列として返します。
(念のため複数のクエリが渡されたときを考慮して)

var base = './';

これは画像ファイルのURLパスです。
相対パスと絶対パスどちらも指定できます。
最後は必ずスラッシュで終わってください。

if(query != '') {

これはクエリがから文字列でなかったらという条件文です。
この条件に一致したらこれ以降のブロックを実行します。

var req = new Array();
for(var i = 0; i < query.length; i++) {
var key = query[i].split('=');
req[decodeURIComponent(key[0])] = decodeURIComponent(key[1]);
}

ここは、各クエリを連想配列に代入しています。
ここはPerlCGIなどで使用されている部分をそのままJavaScriptに
移植してみました。
代入するときにキーと値の両方をURLデコードしています。

var img = document.createElement('img');
img.setAttribute('src', base + req['url']);
document.getElementById('img').appendChild(img);

ここは img エレメントを作成し、 'img' のIDをもつエレメントの
子要素として作成した img エレメントを追加しています。

あと、うっかり忘れていて説明している段階で気がついたのですが
上記のコードの前に req['url'] があるかどうか調べないとエラーが
でる可能性が...。

説明が下手なので却って分かりにくいかも知れませんがご了承ください。
かくコード部分の詳細はネットで調べた方が早くてもっと分かりやすく
説明している所があると思いますよ。
(そもそも上記はほとんどネットから集めた情報を組み合わせただけ
ですので)

>>1
> 結構複雑になってしまいますね。Javascriptを勉強してまもないので
> 難しく感じてしまいます(笑)
> 図々しいとは思いますが、少しながら関数等のscriptの説明をして
> 頂けませんでしょうか。

すみませんでした。
自分でやるときもなかなかコメントつける癖がなくて暫く経ったら
自分の書いたコードさえ解読できなくなることが多々あったりします。
それでも、コメント書くのが面倒だったりそもそも適切なコメントが
思い浮かばずつい、省略してしまうことが多くて自分でも困っていたり
しま...続きを読む

Q画面間でのJavaScriptでの値の受け渡しについて

お世話になります。

画面(ASPで作成した画面)間でのJavaScript同士の値の受け渡しは出来るのでしょうか。

画面1から画面2を開き、画面2のJavaScriptの関数内で画面1のJavaScriptの値を変えると言った事は出来るのでしょうか。

何方かご存知でしたら、お教え下さい。
宜しくお願い致します。

Aベストアンサー

IEとFireFoxで試してみましたけど、できそうですね。
tes1.htmlからtes2.htmlを開いた場合のソースです。
関数はボタンとかから適当に呼んでください。

// tes1.htmlのJavaScript
var value=0;
function msg () {
alert(value);
}
function openWnd () {
wnd = window.open("tes2.html");
}

// tes2.htmlのJavaScript
function count () {
opener.value++; // openerが親元
alert(opener.value);
}

Qウインドウの後ろに隠れているページを前面に出したいんです。

「呼び出し元ページ」をA
「呼び出されるWINDOWページ」をB
と例えます。

「A」のリンクをクリックすると「B」がNEW WINDOWで開き、既に開いている「B」のリンクをクリックすると背面「A」が手前に来るjavascriptに挑戦しているのですが、うまく動作しないんです。
逆の順序「B」→「A」→「B」もです。
WIN IE6.0では成功しましたが、FIREFOX、ネスケ、Mac safariの最新verではダメでした。
すみません、誰か教えて頂けないでしょうか。

現在「A」「B」のページには下記の記述をしてます。
IEでは大丈夫でした。
別の方法でも良いのでお願いします。

■「呼び出し元ページA、test1.com」
<script language="javascript">
<!--
window.focus();
//-->
</script>

<A href=http://www.test2.com/ target=test>リンク</A>

■「呼び出されるWINDOWページB、test2.com」
<script language="javascript">
<!--
window.focus();
//-->
</script>

<A href=http://www.test1.com/ target=test>リンク</A>

「呼び出し元ページ」をA
「呼び出されるWINDOWページ」をB
と例えます。

「A」のリンクをクリックすると「B」がNEW WINDOWで開き、既に開いている「B」のリンクをクリックすると背面「A」が手前に来るjavascriptに挑戦しているのですが、うまく動作しないんです。
逆の順序「B」→「A」→「B」もです。
WIN IE6.0では成功しましたが、FIREFOX、ネスケ、Mac safariの最新verではダメでした。
すみません、誰か教えて頂けないでしょうか。

現在「A」「B」のページには下記の記述をしてます。
IEでは大丈...続きを読む

Aベストアンサー

簡潔すぎてすいませんでした。
子画面から親画面を呼んで前面に出すようにするには
window.opener.document.focus();
というシンタックスでできます(windowは省略可)。
また、window.opener.focus();という書き方でも可。
コードを書くことにはなれていらっしゃるようですので
やってみてください。

>WIN IE6.0では成功しましたが、FIREFOX、ネスケ、
>Mac safariの最新verではダメでした。

IEとMozillaやその他のブラウザでは仕様のちがいから
振るまいがおなじではありません。たとえば、IEでは
window.openerが読み取り専用プロパティではありませんが、他の仕様はちがいます。したがって、IEはヘンスク
リプトを組むとヘンなことになる可能性があります。

Qサブウィンドウを常に最前面に表示する

お世話になります、

現在JavaScriptの勉強をしているのですが、以下の問題に突き当たり困っています。

問題1.
popup = window.open("subWindow.html","subWindow",'width=200,height=400,scrollbars=1,left=50,top=50, dependent=yes');

メソッドによって表示したウィンドウを常に最前列に表示する方法をご存知の方いらっしゃったら教えていただきたいのですが。

親画面をクリックするとSubWindowが親画面の下に隠れてしまい困っています。

よろしくお願いします

Aベストアンサー

showModalDialogというメソッドが準備されています。

サンプル

showModalDialog('sample.html', '' ,'dialogHeight:300px;dialogWidth:300px');

でモーダルダイアログとして表示することにより親画面の下に隠れることはなくなります。ただしこの方法では子画面を閉じるまで親画面に触れなくなります・・

Qブラウザの右上にあるボタンを消すには?

IEを使用しています。
ブラウザの右上にある、閉じる、最大、最小ボタンを消したいのですが、どうすれば良いでしょうか?
ご存じの方は、どうぞ教えていただけませんでしょうか。

Aベストアンサー

なるほど、特定の用途に限定した方策を模索中なのですね。

これは、通常のWebSiteでは、禁じ手とも言える、ユーザからの大顰蹙を買う手法ですが、JavaScriptでフルスクリーン表示させることで実装可能ですね。

表示はWin環境のIE4以上限定でのフルスクリーン表示となります。
それ以外の環境では正しく表示されません。

注意点としては、ウインドウのクローズアクションをボタンなどでナビゲーションしなければ、Altキー+F4キー以外ではウインドウをクローズ出来なくなります。
そのため、使いようによっては、ユーザビリティーを無視した劣悪サイトとも成りかねませんので、一般的なサイト構築には100%お勧め致しません。

まずは、以下の2枚のソースをエディタにCopy&Pasteして、動作チェックしてみて下さい。
その後、ご自分でアレンジして下さい。


リンク元、a.htmlの記述例・・

<html>
<head>
<title>a</title>
<script type="text/javascript">
<!--
function full_screen()
{
window.open("b.html","", "fullscreen=yes");
}
//-->
</script>
</head>
<body>
<a href="#" onclick="full_screen()">b.htmlをフルスクリーン表示</a>
</body>
</html>


リンク先、b.htmlの記述例・・

<html>
<head>
<title>b</title>
</head>
<body>
<form>
<input type="button" name="close" value="ウインドウを閉じる" onClick="window.close()">
</form>
</body>
</html>

なるほど、特定の用途に限定した方策を模索中なのですね。

これは、通常のWebSiteでは、禁じ手とも言える、ユーザからの大顰蹙を買う手法ですが、JavaScriptでフルスクリーン表示させることで実装可能ですね。

表示はWin環境のIE4以上限定でのフルスクリーン表示となります。
それ以外の環境では正しく表示されません。

注意点としては、ウインドウのクローズアクションをボタンなどでナビゲーションしなければ、Altキー+F4キー以外ではウインドウをクローズ出来なくなります。
そのため、使いように...続きを読む

QHTMLファイル同士での値渡し

困っています。

HTMLファイルからHTMLファイルへ移動するときに、
HTMLファイル1でJavaScript で算出された値を
HTMLファイル2へ渡して使用したいのです。

showModalDialogだとダイアログにしか渡せないし・・・。
このように、値をそのまま次のページに渡すための方法を教えてください。
お願いします。

Aベストアンサー

すみません。うっかりしてました。

document.write(FORM[v1]);
では、v1を変数と認識してしまうので、エラーになってしまいますね。

document.write(FORM.v1);  // 「FORM.v1」です
あるいは
document.write(FORM["v1"]);
としてください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング