JavaScript window.open 弹窗用法详解:参数、调用方式与 Cookie 控制
本文详细解析 JavaScript 中 window.open 方法的用法,涵盖窗口尺寸、位置及工具栏等参数设置。介绍四种调用方式,包括页面加载时、离开时及链接按钮触发。此外,提供通过 setTimeout 实现定时自动关闭,以及利用 Cookie 防止重复弹窗的完整代码示例,帮助开发者实现更灵活的窗口控制。
window.open 基础用法与参数详解
本文深入解析 JavaScript 中 window.open 方法的实际应用,旨在为开发者提供清晰的参考指南。
具体代码实现如下:
<script LANGUAGE="javascript">
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no') //写成一行
</script>
各参数含义解析:
js脚本开始; window.open 弹出新窗口的命令; 'page.html' 弹出窗口的文件名; 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替; height=100 窗口高度; width=400 窗口宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏。 resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许; status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
通过函数控制弹窗的四种调用方式
1、通过函数控制弹出窗口 以下是一个完整的代码示例。
<html>
<head>
<script LANGUAGE="Javascript">
<!--
function openwin()
{ window.open("page.html", "newwindow", "height=100,width=400, toolbar=no , menubar=no, scrollbars=no,resizable=no, location=no, status=no") //写成一行
}
//-->
</script>
</head>
<body onload="openwin()">
...任意的页面内容...
/body>
</html>
此处定义了一个名为 openwin() 的函数,其功能是打开一个新窗口。该函数在定义后需通过特定方式调用才能生效。调用方式包括: 方法一:在浏览器读取页面时自动弹出窗口; 方法二:在浏览器离开当前页面时弹出窗口; 方法三:通过链接调用,例如打开一个窗口,注意链接中使用“#”作为虚连接。 方法四:通过按钮调用:
实现弹出窗口的定时自动关闭
2、实现弹出窗口的定时关闭(常见于注册成功后几秒跳转或返回) 对弹出的窗口进行额外控制,可以显著提升用户体验。 若希望在弹出的页面(page.html)中实现10秒后自动关闭,需在该页面的 HTML 中添加特定代码(注意:必须添加到 page.html 中,而非主页面,否则无效)。 首先,将如下代码加入 page.html 文件的 <head> 区:
<script language="Javascript">
function closeit()
{
setTimeout("self.close()",10000) //毫秒
}
</script>
然后,再用 <body onload="closeit()"> 这一句话代替 page.html 中原有的 <body> 标签即可。 (注意:这一句代码至关重要,它的作用是调用关闭窗口的函数,确保10秒后自动关闭该窗口。
利用 Cookie 控制弹窗仅显示一次
3、 仅弹出一次窗口(利用 Cookie 控制) 上述弹窗虽然功能强大,但存在一个缺点:如果脚本放置在频繁访问的页面(如首页),每次刷新都会弹出窗口,造成干扰。 为解决此问题,可利用 Cookie 进行控制。 首先,将如下代码加入主页面 HTML 的 <head> 区:
<script>
function openwin()
{window.open("page.html","","width=200,height=200")}
function get_cookie(Name)
{
var search = Name + "="
var returnvalue = "";
if (documents.cookie.length > 0) {
offset = documents.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = documents.cookie.indexOf(";", offset);
if (end == -1)
end = documents.cookie.length;
returnvalue=unescape(documents.cookie.substring(offset,end))
}
}
return returnvalue;
}
function loadpopup(){
if (get_cookie('popped')==''){
openwin() ;
documents.cookie="popped=yes" ;
}
}
</script>
然后,用 <body onload="loadpopup()">(注意调用的是 loadpop 函数而非 openwin)替换主页面中原有的 <body onload="openwin()"> 这一句即可。你可以尝试刷新页面或重新进入,窗口将不再重复弹出。
这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。
希望本文所述对大家的javascript程序设计有所帮助。
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
