WEB相談室

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

タイトル:showModelessDialog の子画面でのリロード

0:[投稿] まっちー [2006/02/22 16:58 ] [環境:Win2000 IIS]

showModelessDialog()を使って開いた子画面は、元画面に影響することなく、前面に表示されますが、
この子画面内でリロード処理を行うと、フォーカスが子画面に遷移してしまいます。
フォーカスが子画面に遷移することなく(元画面にフォーカスを残したまま)、子画面をリロードする方法はあるでしょうか?


1:[回答] m035 [2006/02/22 20:49 ][URL]

>元画面にフォーカスを残したまま
元画面にフォーカス出来ないのがshowModelessDialogでは無かったでしょうか?
window.openを使うのがもっとも適当だと思います。
子ウィンドウに読み込むhtmlのbodyタグを
<body onload="if(!!window.opener){window.opener.focus()}">
とすればいいはずです。


2:[回答] EUR [2006/02/23 12:21 ]

インラインフレームがあるだけの枠用HTMLを子画面として用意して、インラインフレームの中で本来呼び出したいHTMLを表示します。
インラインフレームの中でリロードが起こっても、子画面にフォーカスが移ることはありません。

例)
親画面
<HTML>
<body onLoad="showModelessDialog('test.html', '')">
</body>
</HTML>

子画面
<HTML>
<body>
<iframe width="100%" height="100%" src="test2.html">
</body>
</HTML>

本来呼び出したい子画面(インラインフレームの中で表示)
<HTML>
<head>
<script language="javascript">
function test() {
    this.location.reload();
    document.write("更新した");
}
</script>
</head>
<body onLoad="setTimeout('test()', 1000)"></body>
</HTML>

子画面を呼び出したら、即座に親画面にフォーカスを戻して見てください。
10秒後の更新の際、フォーカスは移らないと思います。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]