简体   繁体   English

弹出窗口最大化按钮

[英]Popup window Maximize button

如何使用Javascript启用弹出窗口的最大化和恢复按钮?

You have to open a popup like this: 你必须像这样打开一个弹出窗口:

window.open('url', 'windowname', 'location=0, status=0, resizable=1, scrollbars=1, width=400, height=400');

The trick is to make the window resizable. 诀窍是使窗口可调整大小。 Search for the window.open() function documentation. 搜索window.open()函数文档。

Using the code I pasted on the bottom, you can emulate these buttons by creating them in your website interface. 使用我粘贴在底部的代码,您可以通过在网站界面中创建这些按钮来模拟这些按钮。

To maximise: save the current position with Namespace.outerPositionGet() and size with Namespace.outerSizeGet() , then do Namespace.outerPositionSet({left:0,top:0}) and Namespace.outerSizeSet({width:window.screen.availWidth, height:window.screen.availHeight}) . 为了最大限度地提高:保存与当前位置Namespace.outerPositionGet()和大小与Namespace.outerSizeGet()然后执行Namespace.outerPositionSet({left:0,top:0})Namespace.outerSizeSet({width:window.screen.availWidth, height:window.screen.availHeight})

To restore: just set position and size which were saved when maximising. 要恢复:只需设置最大化时保存的位置和大小。

var Namespace = (function() {
    var N, W, framePosition, frameChrome, setFramePosition, setFrameChrome;
    N = {};
    W = window;
    setFramePosition = function() {
        var tmp0;
        if (typeof framePosition !== 'undefined') {
            return;
        }
        tmp0 = {
            top : W.screenTop,
            left : W.screenLeft
        };
        W.moveTo(tmp0.left, tmp0.top);
        framePosition = {
            top : tmp0.top - W.screenTop,
            left : tmp0.left - W.screenLeft
        };
        W.moveTo(tmp0.left + framePosition.left, tmp0.top + framePosition.top);
    };
    setFrameChrome = function() {
        var tmp0, tmp1;
        if (typeof frameChrome !== 'undefined') {
            return;
        }
        tmp0 = N.innerSizeGet();
        W.resizeTo(tmp0.width, tmp0.height);
        tmp1 = N.innerSizeGet();
        frameChrome = {
            width : tmp0.width - tmp1.width,
            height : tmp0.height - tmp1.height
        };
        W.resizeTo(tmp0.width + tmp1.width, tmp0.height + tmp1.height);
    };
    N.outerPositionSet = function(position) {
        W.moveTo(position.left, position.top);
    };
    N.outerPositionGet = function() {
        if (typeof W.screenTop !== 'undefined') {
            setFramePosition();
            N.outerPositionGet = function() {
                return {
                    top : W.screenTop + framePosition.top,
                    left : W.screenLeft + framePosition.left
                };
            };
        } else if (typeof W.screenY !== 'undefined') {
            N.outerPositionGet = function() {
                return {
                    top : W.screenY,
                    left : W.screenX
                };
            };
        } else {
            N.outerPositionGet = function() {
                return {
                    top : 0,
                    left : 0
                };
            };
        }
        return N.outerPositionGet();
    };
    N.outerSizeSet = function(size) {
        W.resizeTo(size.width, size.height);
    };
    N.outerSizeGet = function() {
        if (W.outerWidth) {
            N.outerSizeGet = function() {
                return {
                    width : W.outerWidth,
                    height : W.outerHeight
                };
            };
        } else {
            setFrameChrome();
            N.outerSizeGet = function() {
                var size;
                size = N.innerSizeGet();
                size.width += frameChrome.width;
                size.height += frameChrome.height;
                return size;
            };
        }
        return N.outerSizeGet();
    };
    N.innerSizeSet = function(size) {
        setFrameChrome();
        N.innerSizeSet = function(size) {
            W.resizeTo(size.width + frameChrome.width, size.height + frameChrome.height);
        };
        N.innerSizeSet(size);
    };
    N.innerSizeGet = function() {
        if (typeof W.innerHeight === 'number') {
            N.innerSizeGet = function() {
                return {
                    width : W.innerWidth,
                    height : W.innerHeight
                };
            };
            return N.innerSizeGet();
        }
        var isDocumentElementHeightOff, node;

        isDocumentElementHeightOff = function() {
            var div, r;
            div = W.document.createElement('div');
            div.style.height = "2500px";
            W.document.body.insertBefore(div, W.document.body.firstChild);
            r = W.document.documentElement.clientHeight > 2400;
            W.document.body.removeChild(div);
            return r;
        };

        if (typeof W.document.clientWidth === 'number') {
            node = W.document;
        } else if ((W.document.documentElement && W.document.documentElement.clientWidth === 0) || isDocumentElementHeightOff()) {
            node = W.document.body;
        } else if (W.document.documentElement.clientHeight > 0) {
            node = W.document.documentElement;
        }
        N.innerSizeGet = function() {
            return {
                width : node.clientWidth,
                height : node.clientHeight
            };
        };
        return N.innerSizeGet();
    };
    return N;
})();

I'm assuming you're talking about the alert popup? 我假设你在谈论警报弹出窗口? This can't be done with standard JavaScript. 使用标准JavaScript无法做到这一点。

You best solution would be to try using some of the many popup solutions that have been developed for the various JavaScript frameworks (eg jQuery), and seeing if you can tailor this to your particular use. 您最好的解决方案是尝试使用为各种JavaScript框架(例如jQuery)开发的许多弹出解决方案,并查看是否可以根据您的特定用途进行定制。

try this also. 试试这个。 its working for me... 它为我工作......

 window.open('fileURL','status=1,directories=1,menubar=0,toolbar=0,
              scrollbars=1,titlebar=0,dialog=1)

You can't, sorry - at least, not universally. 你不能,抱歉 - 至少,不是普遍的。 The popup is implementation-dependent and there aren't any standard JavaScript methods for controlling it in the manner you describe. 弹出窗口是依赖于实现的,并且没有任何标准的JavaScript方法可以按照您描述的方式对其进行控制。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM