2012-12-20 7 views
6

私はwindow.openを使用して親ウィンドウから子ウィンドウを開きます。親ウィンドウにエントリを作成している間、ユーザが参照できるように、子ウィンドウを一番上に置いておきたい。これはできますか?私は現時点ではFirefoxを使用していますが、すべてのブラウザで機能していればボーナスになります。子供の窓を上に留めるには?

+0

新しいウィンドウにフォーカスを当てることはできますが、親ウィンドウには何も入力できません。 –

+3

新しいウィンドウを開く代わりに[popup div](http://jqueryui.com/dialog/#default)を使用するのはどうですか? – 3dgoo

+1

これはウィンドウでできる最高です:http://jsfiddle.net/DerekL/WFsyY/ –

答えて

1

どのように開口部の代わりにpopup divの使用について新しいウィンドウ?

+1

ブーム!ばっちり成功。 –

+2

これは、親ウィンドウの外でHTMLポップアップを移動することができないという問題があります。 – UrbKr

1

このポップアップレイヤーも、DOMWindowDemoです。

+0

http://stackoverflow.com/questions/how-to-answer –

+0

私はこれがいつのまにか便利だと知っているので、これを+1しようとしています。 –

0

はい、あなたは、子ウィンドウの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> 
+0

これは私が期待していたように動作していないようです。親ウィンドウに戻ると、子ウィンドウが失われます。 –

+0

ここで問題は、子から親にコンテンツを書き込むことであり、親が存在しない場合は子が存在しないためです。 –

0
<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> 
+0

返事をありがとうございますが、これは私が行ったことではありません。これはテキストボックスを含む新しいウィンドウを作成しますが、親ウィンドウをクリックすると失われます。親ウィンドウにエントリを作成している間、ユーザが参照できるように、子ウィンドウを一番上に置いておきたい。 –

0
<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> 
+0

ありがとうございますが、私はあなたが何を望んでいるのか分かりません。 "子ウインドウを一番上にして、親ウインドウにエントリを作成するときに参照できるようにします。" –

0

私はこれと長年一緒に取り組んでいました。それはFFのバグだと思われますが、新しいウィンドウが開いた後、クリックするとフォーカスが得られ、トップに来ることに気付きました。しかし、window.focus()を呼び出すと機能しませんでしたので、あまりにも早く起きていたと思いました。私はあなたがそれを動作させる必要がある場合には、固体の練習のように感じるのではなく

setTimeout(function(){window.focus()},100); 

を追加したページの下部にある新しいウィンドウコードでそう

は、... 100ミリ秒であると思われます私のシステムで動作する最低。

+0

また、open()要求がイベントハンドラ内から行われた場合にのみ動作するようです。さらに、イベントハンドラは、入力elemntsなどのフォーカスを受け入れることができるオブジェクト上になければなりません。 –

+0

divなどのようにイベントahndlerを添付することはできますが、フォーカスを受け入れることができないため、上記は機能しません。 –

関連する問題