1

Webアプリケーションでは、さまざまな場所で多くのポップアップウィンドウを開いています。これらはwindow.open()を使用して開かれる通常のポップアップウィンドウであり、Jqueryポップアップウィンドウではありません。それらはブラウザウィンドウのさまざまな位置で開き、高さと幅も異なります。

ここで、ブラウザで開いたときにすべてのポップアップウィンドウを中央に配置したいと思います。渡された高さと幅のセンタリングの上下の値を返す関数を作成しました。ここで、window.openを使用してポップアップウィンドウを開き、上部と左側の値を取得して、それらをwindow.openに渡すたびに、この関数を1回呼び出す必要があります。これは、さまざまなjavascriptファイルの多くの場所で行われる可能性があります。

window.openを使用して開いたすべてのポップアップウィンドウの中央にいくつかの変更を加えるだけで、私の要件を達成する一般的な方法はありますか?Jqueryはこれを簡単に行うのに役立ちますか?

4

2 に答える 2

0

現在お持ちのものと同じだと思いますが、よろしければご覧ください。jQuery リンクを使用する必要があまりないようです

function PopupCenter(pageURL, title,w,h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no,     status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
} 
于 2012-05-30T06:55:12.583 に答える
0

からコードを変換するだけです

var params = getCenteredCoords();
window.open(url, "...", params+"...");

myPopup(url, "...", "...");

グローバルを宣言します

function myPopup(url, name, params) {
    var coords = getCenteredCoords();
    return window.open(ul, name, coords+params);
}

はい、これらのすべてのファイルでカスタム ソリューションが必要になります。したがって、唯一の方法は、同じことを繰り返さず、1 つのグローバル関数を使用することです。

OK、すべてのファイルのすべてを変更しない方法があります:window.openカスタム ソリューションで上書きします:

window.open = (function(original){
    return function myPopup(url, name, params) {
        var coords = getCenteredCoords();
        return original(ul, name, coords+params);
    };
})(window.open);
于 2012-05-30T06:55:32.367 に答える