2010-12-03 2 views
0

だから私は 開いたpopUpsを配列に入れ、新しいポップアップが作成されるたびにその上にすべてのポップアップを作る方法は?

<script> 
openWin = function(name, width, height, left, top){ 
    left=left+1; 
    top=top+1; 
    var file='./'+name+'.flv?action=read'; 
    var settings='width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top+''; 
    //alert(file); 
    //alert(settings); 
    var win = window.open(file, name, settings); 
} 
     </script> 

私は新しいものを開くときに、配列の中にポップアップを入れて、毎回新しいものが作成された上に作成されたすべてのポップアップを作る方法を疑問に思う使用ポップアップを開くには?

+0

ポップアップウィンドウを使用せずに同じ文書でモーダルダイアログレイヤーを使用することを考えたことはありますか?ポップアップウインドウを使うのは、ポップアップブロッカーやブラウザーのセキュリティーモデルが追加されているためです。 – epascarello

答えて

1

各ウィンドウを格納する空の配列を作成するだけです。配列によって新しいループを作成した後、各ウィンドウのfocusメソッドを呼び出す:

var openWin = (function() 
{ 
    var popups = []; 
    return function (name, width, height, left, top) 
    { 
     ++left; 
     ++top; 
     var file = './' + name + '.flv?action=read'; 
     var settings = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',screenX=' + left + ',screenY=' + top; 
     popups.push(window.open(file, name, settings)); 
     for (var i = 0; i < popups.length; ++i) 
      popups[i].focus(); 
    } 
})(); 

あなたはクロージャ内のすべてのものを置きたいことがあり、その配列が公開されることはありませんが。

+0

hM ...試してみる ' 'しかし、それは動作しません... – Rella

+0

ちょうど正確にあなたの方法を試してみました:' 'ウィンドウはまだ開いていますが、ポップアップしません=( – Rella

+0

デバッガ(クロム)が一般的に見えていますUncaught TypeError:オブジェクトの長さ' object DOMWindow 'が関数ではありません CloudObserverIndex.html: 30Uncaught TypeError:オブジェクトの長さobject [オブジェクトDOMWindow]、[オブジェクトDOMWindow]は関数ではありません ' – Rella

関連する問題