私は使っている window.open
親ウィンドウから子ウィンドウを開きます。ユーザーが親ウィンドウにエントリを作成するときに子ウィンドウを参照できるように、子ウィンドウを一番上に置いておきたいです。これはできますか?現在Firefoxを使用していますが、すべてのブラウザで動作する場合はボーナスになります。
新しいウィンドウを開く代わりに popup div を使用するのはどうですか?
このポップアップレイヤーも適切です: DOMWindowDemo 。
<html>
<script language="JavaScript">
<!--
function openWin(){
var myBars = 'directories=no,location=no,menubar=no,status=no';
myBars += ',titlebar=no,toolbar=no';
var myOptions = 'scrollbars=no,width=600,height=400,resizeable=no,top=10, left=10';
var myFeatures = myBars + ',' + myOptions;
var newWin = open('test.html', '', myFeatures);
newWin.document.close();
newWin.focus();
}
-->
</script>
<body>
<form>
<b>Click the following button to open a new window: </b>
<input type=BUTTON value="Open" onClick='openWin()'>
</form>
</body>
</html>
</html>
はい、子ウィンドウの本体にonBlur = "self.focus()"を指定したこのコードでこれを行うことができます
//Parent page...
<html>
<body>
<a href="#" onClick="window.open('two.html','sdvwsv','width=200,height=200');">here...</a>
</body>
</html>
//Child page...
<html>
<body onBlur="self.focus();">
here...
</body>
</html>
<html>
<script language="JavaScript">
<!--
function openWin(){
var myBars = 'directories=no,location=no,menubar=no,status=no';
myBars += ',titlebar=no,toolbar=no';
var myOptions = 'scrollbars=no,width=400,height=200,resizeable=no,top=10, left=10,';
var myFeatures = myBars + ',' + myOptions;
var myReadme = 'This is a test.'
var newWin = open('', 'myDoc', myFeatures);
newWin.document.writeln('<form>');
newWin.document.writeln('<table>');
newWin.document.writeln('<tr valign=TOP><td>');
newWin.document.writeln('<textarea cols=45 rows=7 wrap=SOFT>');
newWin.document.writeln(myReadme + '</textarea>');
newWin.document.writeln('</td></tr>');
newWin.document.writeln('<tr><td>');
newWin.document.writeln('<input type=BUTTON value="Close"');
newWin.document.writeln(' onClick="window.close()">');
newWin.document.writeln('</td></tr>');
newWin.document.writeln('</table></form>');
newWin.document.close();
newWin.focus();
}
-->
</script>
<body>
<form>
<b>Click the following button to open a new window: </b>
<input type=BUTTON value="Open" onClick='openWin()'>
</form>
</body>
私はこれと長い間取り組んできました。 FFのバグのようですが、新しいウィンドウが開いた後、それをクリックすると、フォーカスが移動して一番上に表示されることに気付きました。ただし、window.focus()を呼び出すと機能しなかったため、発生が早すぎたと思います。
そのため、新しいウィンドウコードで、ページの下部に追加しました
setTimeout(function(){window.focus()},100);
確かな練習のようには感じませんが、それが機能する必要がある場合は... 100mSecは私のシステムで機能する最低のようです。