Javascript 弹出窗口最大化按钮
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2048935/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Popup window Maximize button
提问by MAC
How to enable the maximize and restore button of the popup window using Javascript?
如何使用Javascript启用弹出窗口的最大化和恢复按钮?
回答by Jay
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() 函数文档。
回答by Vytautas Jakutis
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;
})();
回答by James Wiseman
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 (e.g. jQuery), and seeing if you can tailor this to your particular use.
您最好的解决方案是尝试使用为各种 JavaScript 框架(例如 jQuery)开发的许多弹出解决方案中的一些,看看您是否可以针对您的特定用途进行定制。
回答by kalarav
try this also. its working for me...
也试试这个。它对我有用...
window.open('fileURL','status=1,directories=1,menubar=0,toolbar=0,
scrollbars=1,titlebar=0,dialog=1)
回答by Sam Holloway
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 方法可以按照您描述的方式控制它。

![HTML javascript 函数问题。[object HTMLInputElement] 错误输出](/res/img/loading.gif)