javascript 使用jquery?将从主窗口打开的弹出窗口居中

mi7gmzs6  于 2023-01-07  发布在  Java
关注(0)|答案(2)|浏览(132)

在一个Web应用程序中,我在不同的位置打开了许多弹出窗口。这些是使用www.example.com()打开的普通弹出窗口window.open,而不是Jquery弹出窗口。它们在浏览器窗口的不同位置打开,并且具有不同的高度和宽度。
现在,我想在浏览器上打开所有的弹出窗口时居中。我已经编写了一个函数,它将返回给我顶部和左侧的值,用于传递高度和宽度的居中。现在,我需要在每次使用www.example.com打开弹出窗口之前调用一次此函数window.open。获取顶部和左侧的值,然后将它们传递给window.open。我可能会在各种javascript文件的许多地方完成此操作。
有没有一种通用的方法可以实现我的要求,只需做一些修改,就可以将所有使用window.open打开的弹出窗口居中。Jquery可以帮助我轻松地做到这一点吗?

rt4zxlrg

rt4zxlrg1#

我认为这与您目前所拥有的类似,但是您可能想看一看,似乎没有太多必要使用jQuerylink

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);
}
wbrvyc0a

wbrvyc0a2#

只需将代码从

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

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

并声明全局

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

是的,您需要在每个文件中使用自定义的解决方案,因此唯一的方法是不要重复自己的操作并使用一个全局函数。
好吧,有一种方法可以不更改所有文件中的所有内容:使用自定义解决方案覆盖window.open

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

相关问题