【问题标题】:Center popup windows opened from main window using jquery?使用jquery从主窗口打开中心弹出窗口?
【发布时间】:2012-06-04 09:23:54
【问题描述】:

在一个网络应用程序中,我在不同的点打开了很多弹出窗口。这些是使用 window.open() 打开的普通弹出窗口,而不是 Jquery 弹出窗口。它们在浏览器窗口的不同位置打开,并且具有不同的高度和宽度。

现在,我想在浏览器上打开所有弹出窗口时居中。我编写了一个函数,它将返回顶部和左侧值,以便为传递的高度和宽度居中。现在,我需要在每次使用 window.open 打开弹出窗口之前调用该函数一次,获取顶部和左侧的值,然后将它们传递给 window.open。我最终可能会在各种 javascript 文件的很多地方这样做。

有没有一种通用的方法来实现我的要求,只需更改使用 window.open 打开的所有弹出窗口的居中。 Jquery 可以帮助我轻松做到这一点吗?

【问题讨论】:

标签: javascript jquery html generics popup


【解决方案1】:

只需转换您的代码

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

【讨论】:

    【解决方案2】:

    我认为这与您目前拥有的类似,但您可能想看看。似乎没有太多需要使用 jQuery link

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多