2

javascriptでバックグラウンドでファイルを開きたいです。コードはクロムで正常に動作しますが、Firefox (12) と Opera では新しいウィンドウがフォアグラウンドで開きます。

誰かが私が間違っていることを知っていますか?.

ここでは、2 つのファイルのコードを示します。

父.html:

<html>
<body>
<script>
    var son=null;
    function openIt(){
        son=window.open('son.html','sonpage'); 
        son.blur(); 
        self.focus(); 
        window.focus(); 
        //alert("voy");
        return false;
    }
</script>
<a href="javascript:void(0)" onClick="openIt(); return false;">Open</a>
<a href="javascript:void(0)" onClick="son.close()">Close</a>
<button type="button" id="play2-video" onclick="son.play()">
    play2 video
</button>
<button type="button" id="pause2-video" onclick="son.pausa()">
    pause video
</button>   
Father Page
</body>

son.html:

<html>
<Head>
    <script>
        function play(){
            alert("Play!");
        }           
        function stop(){
            alert("Stop!");
        }
    </script>
</Head>
<Body>
    <h1> Son Page</h1>
</Body>

ありがとうございました!

4

1 に答える 1

1

Firefox は、セキュリティ オプションが設定されていて、デフォルトでは設定されていない場合にのみ、ウィンドウを上げる要求に従います。私が知る限り、Chrome は focus() リクエストにまったく注意を払いません。Safari は focus() リクエストに従います。

特定の Firefox 設定は、[ツール -> オプション] ダイアログにあります。「コンテンツ」タブがあり、その中に Javascript を有効にするためのチェックボックスがあります。それに加えて、別のダイアログを表示する「詳細」ボタンがあり、ページコードによるウィンドウの上げ下げを許可 (または禁止) するためのチェックボックスがあります。

https://stackoverflow.com/a/2533335/643500を読む

コードをいじろうとしました -- 喜びはありません

関数は以下のみを必要とします:

function openIt(){
    son=window.open('son.html','sonpage'); 
    window.focus();
    return false;
}

開いたページからメインのページにリダイレクトして、その方法で実行できるかどうかを確認してみてください。

また、JQuery を調べると、http://api.jquery.com/focusout/のようなイベントで処理される場合があります。

于 2012-05-01T20:07:40.550 に答える