Javascript弹出窗口脚本有时对于将弹出窗口添加到页面很有用。当用户单击链接时,将打开一个新窗口并显示一个页面。
HTML
<a href="/index.html" onclick="return openWindow(this, {width:790,height:450,center:true})">打开新窗口</a>
有一些可选的可选参数作为第二个对象参数传递给此Javascript打开窗口函数(如上所示):
{
width //宽度
height //高度
left //X坐标
top //Y坐标
center //中央
name //名称
scrollbars //滚动条
menubar //菜单栏
locationbar //位置栏
resizable //可调整大小
}
源码
/**
*
* Javascript open window
*
**/
function openWindow(anchor, options) {
var args = '';
if (typeof(options) == 'undefined') { var options = new Object(); }
if (typeof(options.name) == 'undefined') { options.name = 'win' + Math.round(Math.random()*100000); }
if (typeof(options.height) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
args += "height=" + options.height + ",";
}
if (typeof(options.width) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
args += "width=" + options.width + ",";
}
if (typeof(options.fullscreen) != 'undefined') {
args += "width=" + screen.availWidth + ",";
args += "height=" + screen.availHeight + ",";
}
if (typeof(options.center) == 'undefined') {
options.x = 0;
options.y = 0;
args += "screenx=" + options.x + ",";
args += "screeny=" + options.y + ",";
args += "left=" + options.x + ",";
args += "top=" + options.y + ",";
}
if (typeof(options.center) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
options.y=Math.floor((screen.availHeight-(options.height || screen.height))/2)-(screen.height-screen.availHeight);
options.x=Math.floor((screen.availWidth-(options.width || screen.width))/2)-(screen.width-screen.availWidth);
args += "screenx=" + options.x + ",";
args += "screeny=" + options.y + ",";
args += "left=" + options.x + ",";
args += "top=" + options.y + ",";
}
if (typeof(options.scrollbars) != 'undefined') { args += "scrollbars=1,"; }
if (typeof(options.menubar) != 'undefined') { args += "menubar=1,"; }
if (typeof(options.locationbar) != 'undefined') { args += "location=1,"; }
if (typeof(options.resizable) != 'undefined') { args += "resizable=1,"; }
var win = window.open(anchor, options.name, args);
return false;
}