利用javascript制作常见的弹出窗口

本文提供了一系列JavaScript函数,用于打开不同配置的新窗口,包括有状态栏、工具栏等的窗口及模式窗口,并支持返回值。此外,还介绍了如何实现自适应图片大小的弹出窗口。

//==========================================================================
//
//  代码描述:打开一个新的有状态栏、工具栏、菜单栏、定位栏,
//            可以改变大小,且位置居中的新窗口
// 
//  传入参数:pageURL - 传递链接
//            innerWidth - 传递需要打开新窗口的宽度
//            innerHeight - 传递需要打开新窗口的高度
// 
//  返回参数:无
//==========================================================================
function g_OpenSizeWindow(pageURL, innerWidth, innerHeight)
{   
    var ScreenWidth = screen.availWidth
    var ScreenHeight = screen.availHeight
    var StartX = (ScreenWidth - innerWidth) / 2
    var StartY = (ScreenHeight - innerHeight) / 2
    window.open(pageURL, '', 'left='+ StartX + ', top='+ StartY + ', Width=' + innerWidth +', height=' + innerHeight + ', resizable=yes, scrollbars=yes, status=yes, toolbar=yes, menubar=yes, location=no')
}
//==========================================================================
//
//  代码描述:打开一个新的没有状态栏、工具栏、菜单栏、定位栏,
//            不能改变大小,且位置居中的新窗口
//
//  传入参数:pageURL - 传递链接
//            innerWidth - 传递需要打开新窗口的宽度
//            innerHeight - 传递需要打开新窗口的高度
// 
//  返回参数:无
//==========================================================================
function g_OpenWindow(pageURL, innerWidth, innerHeight)
{   
    var ScreenWidth = screen.availWidth
    var ScreenHeight = screen.availHeight
    var StartX = (ScreenWidth - innerWidth) / 2
    var StartY = (ScreenHeight - innerHeight) / 2
    window.open(pageURL, '', 'left='+ StartX + ', top='+ StartY + ', Width=' + innerWidth +', height=' + innerHeight + ', resizable=no, scrollbars=yes, status=no, toolbar=no, menubar=no, location=no')
}
//==========================================================================
//
//  代码描述:打开一个新的没有状态栏、工具栏、菜单栏、定位栏,
//            不能改变大小,且位置居中的新窗口
//      
// 
//  传入参数:pageURL - 传递链接
//            innerWidth - 传递需要打开新窗口的宽度
//            innerHeight - 传递需要打开新窗口的高度
// 
//  返回参数:返回的数值
//
//==========================================================================
function g_OpenReturnWindow(pageURL, innerWidth, innerHeight)
{   
    var ScreenWidth = screen.availWidth
    var ScreenHeight = screen.availHeight
    var StartX = (ScreenWidth - innerWidth) / 2
    var StartY = (ScreenHeight - innerHeight) / 2
    window.open(pageURL, '', 'left='+ StartX + ', top='+ StartY + ', Width=' + innerWidth +', height=' + innerHeight + ', resizable=no, scrollbars=yes, status=no, toolbar=no, menubar=no, location=no')
    return false
}

function g_OpenReturnWindowNoScrollbars(pageURL, innerWidth, innerHeight)
{   
    var ScreenWidth = screen.availWidth
    var ScreenHeight = screen.availHeight
    var StartX = (ScreenWidth - innerWidth) / 2
    var StartY = (ScreenHeight - innerHeight) / 2
    window.open(pageURL, '', 'left='+ StartX + ', top='+ StartY + ', Width=' + innerWidth +', height=' + innerHeight + ', resizable=no, scrollbars=no, status=no, toolbar=no, menubar=no, location=no')
    //return false
}
//==========================================================================
//
//  代码描述:打开一个新的没有状态栏、工具栏、菜单栏、定位栏,
//            不能改变大小,且位置居中的新窗口
// 
//  传入参数:pageURL - 传递链接
// 
//  返回参数:无
//
//
//==========================================================================
function g_OpenReturnWindowPrint(pageURL)
{   
    var ScreenWidth = screen.availWidth
    var ScreenHeight = screen.availHeight
    //var StartX = (ScreenWidth - innerWidth) / 2
    //var StartY = (ScreenHeight - innerHeight) / 2
    var Win = window.open(pageURL, '','Width=' + ScreenWidth +', height=' + ScreenHeight + ', resizable=no, scrollbars=no, status=no, toolbar=no, menubar=no, location=no, left=0, top=0')
    Win.moveTo(99999,99999)   
    return false
}
//==========================================================================================
//
// 代码描述:打开模式窗口函数,打开一个模式窗口不包含菜单、状态条、工具条、定位栏
//
// 传入参数:pageURL - 传递链接
//            innerWidth - 传递需要打开新窗口的宽度
//            innerHeight - 传递需要打开新窗口的高度
// 返回参数:无
//
//
//==========================================================================================
function g_OpenModalWindow(pageURL, innerWidth, innerHeight)
{
    window.showModalDialog(pageURL, null, 'dialogWidth:' + innerWidth + 'px;dialogHeight:' + innerHeight + 'px;help:no;unadorned:no;resizable:no;status:no')
}

//==========================================================================================
//
// 代码描述:打开模式窗口函数,打开一个模式窗口不包含菜单、状态条、工具条、定位栏 ,并且返回值
//
// 传入参数:pageURL - 传递链接
//            innerWidth - 传递需要打开新窗口的宽度
//            innerHeight - 传递需要打开新窗口的高度
// 返回参数:模式窗体返回的returnValue
//
//
//==========================================================================================
function g_OpenreturnWindow(pageURL, innerWidth, innerHeight)
{
    var returnv;
    returnv=window.showModalDialog(pageURL, null, 'dialogWidth:' + innerWidth + 'px;dialogHeight:' + innerHeight + 'px;help:no;unadorned:no;resizable:no;status:no')
    return returnv;
}
//==========================================================================================
//
// 代码描述:打开模式窗口函数,打开一个模式窗口不包含菜单、状态条、工具条、定位栏
//
// 传入参数:pageURL - 传递链接
//            innerWidth - 传递需要打开新窗口的宽度
//            innerHeight - 传递需要打开新窗口的高度
// 返回参数:无
//
//
//==========================================================================================
function g_OpenReturnModalWindow(pageURL, innerWidth, innerHeight)
{
    window.showModalDialog(pageURL, null, 'dialogWidth:' + innerWidth + 'px;dialogHeight:' + innerHeight + 'px;help:no;unadorned:no;resizable:no;status:no');
    return false;
}
//==========================================================================================
//
// 代码描述:关闭窗口
//
// 传入参数:无
//
// 返回参数:无
//==========================================================================================
function g_CloseWindow()
{
    window.close()
    return false
}
自适应图片大小的弹出窗口
<script language="javascript" type="text/javascript">
<!--
var imgObj;
function checkImg(theURL,winName){
// 对象是否已创建
if (typeof(imgObj) == "object"){
// 是否已取得了图像的高度和宽度
if ((imgObj.width != 0&& (imgObj.height != 0))
// 根据取得的图像高度和宽度设置弹出窗口的高度与宽度,并打开该窗口
//
 其中的增量 20 和 30 是设置的窗口边框与图片间的间隔量
OpenFullSizeWindow(theURL,winName, ",width=" + (imgObj.width+20+ ",height=" + (imgObj.height+30));
else
// 因为通过 Image 对象动态装载图片,不可能立即得到图片的宽度和高度,所以每隔100毫秒重复调用检查
setTimeout("checkImg('" + theURL + "','" + winName + "')"100)
}

}


function OpenFullSizeWindow(theURL,winName,features) {
var aNewWin, sBaseCmd;
// 弹出窗口外观参数
sBaseCmd = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,";
// 调用是否来自 checkImg 
if (features == null || features == ""){
// 创建图像对象
imgObj = new Image();
// 设置图像源
imgObj.src = theURL;
// 开始获取图像大小
checkImg(theURL, winName)
}

else{
// 打开窗口
aNewWin = window.open(theURL,winName, sBaseCmd + features);
// 聚焦窗口
aNewWin.focus();
}

}

//-->
</script>使用时将上面的代码放在网页文档的<head></head>标记对中,然后在链接的点击事件中调用OpenFullSizeWindow函数,如<a href="fullsize.jpg" onClick="OpenFullSizeWindow(this.href,'','');return false"><img src="small.jpg"></a>即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值