用javascript父窗口控制只弹出一个子窗口


Posted in Javascript onApril 10, 2007

近来网上经常流传一些关于如何在父窗口控制只弹出一个子窗口 问题,我查看了一些,大部分都是只能解决部分或者很麻烦,还不算完美。比如有人是实现的这样,使用的是Cookie,以下是例子。 
主页上做了一个弹出窗口,如何使其只弹出一次,返回主页时不再弹出了。 
--------------------------------------------------------------- 

<script> 
window.open("http://www.yeboss.com.cn","yeboss","width=300,height=400") 
</script> 
--------------------------------------------------------------- 

cookie 
--------------------------------------------------------------- 

<HEAD> 

<SCRIPT LANGUAGE="JavaScript"> 

<!-- Begin 
var expDays = 1; // number of days the cookie should last 

var page = "only-popup-once.html"; 
var windowprops = "width=300,height=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes"; 

function GetCookie (name) { 
var arg = name + "="; 
var alen = arg.length; 
var clen = document.cookie.length; 
var i = 0; 
while (i < clen) { 
var j = i + alen; 
if (document.cookie.substring(i, j) == arg) 
return getCookieVal (j); 
i = document.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 

return null; 

function SetCookie (name, value) { 
var argv = SetCookie.arguments; 
var argc = SetCookie.arguments.length; 
var expires = (argc > 2) ? argv[2] : null; 
var path = (argc > 3) ? argv[3] : null; 
var domain = (argc > 4) ? argv[4] : null; 
var secure = (argc > 5) ? argv[5] : false; 
document.cookie = name + "=" + escape (value) + 
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
((path == null) ? "" : ("; path=" + path)) + 
((domain == null) ? "" : ("; domain=" + domain)) + 
((secure == true) ? "; secure" : ""); 

function DeleteCookie (name) { 
var exp = new Date(); 
exp.setTime (exp.getTime() - 1); 
var cval = GetCookie (name); 
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); 

var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000)); 
function amt(){ 
var count = GetCookie(’count’) 
if(count == null) { 
SetCookie(’count’,’1’) 
return 1 

else { 
var newcount = parseInt(count) + 1; 
DeleteCookie(’count’) 
SetCookie(’count’,newcount,exp) 
return count 
   } 

function getCookieVal(offset) { 
var endstr = document.cookie.indexOf (";", offset); 
if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(document.cookie.substring(offset, endstr)); 

function checkCount() { 
var count = GetCookie(’count’); 
if (count == null) { 
count=1; 
SetCookie(’count’, count, exp); 

window.open(page, "", windowprops); 


else { 
count++; 
SetCookie(’count’, count, exp); 
   } 

//  End --> 
</script> 

<BODY OnLoad="checkCount()"> 
这个是网上随便摘的一个例子,是不是感觉很多也很难看懂呢,下面我给大家说一种新方法,保证好看好使。

<script language="JavaScript" type="text/JavaScript">
<!--  Copyright fenggang at 2007/3/23
var w=null;
function MM_openBrWindow(theURL,winName,features) { //v2.0
  if(w!=undefined&&isOpen()){
   w.close();
  }
   w=window.open("",winName,features);
   w.location.replace(theURL);
}
function isOpen()
{
  try
  {
  w.document;
  return true;
  }
  catch(ex)
  {}

  return false;
}
//-->
</script>
这个MM_openBrWindow()函数名是在Dreamweaver中常用的弹出窗口函数名,将这段代码放进页面里
然后再做弹出窗口就只能探出一个窗口了,以上是精髓部分,下面是完整的一个测试页的代码,试试看吧。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="JavaScript" type="text/JavaScript">
<!--  Copyright fenggang at 2007/3/23
var w=null;
function MM_openBrWindow(theURL,winName,features) { //v2.0
  if(w!=undefined&&isOpen()){
   w.close();
  }
   w=window.open("",winName,features);
   w.location.replace(theURL);
}
function isOpen()
{
  try
  {
  w.document;
  return true;
  }
  catch(ex)
  {}

  return false;
}
//-->
</script>
</head>
<body>
<a href="javascript:;" onClick="MM_openBrWindow(show.asp’,’’,’scrollbars=yes,resizable=yes,width=570,height=500’)">title</a>
</body>
</html>

Javascript 相关文章推荐
jQuery 动画弹出窗体支持多种展现方式
Apr 29 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
May 11 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
jQuery表单美化插件jqTransform使用详解
Apr 12 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
JS中获取函数调用链所有参数的方法
May 07 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
Dec 07 Javascript
vue源码学习之Object.defineProperty 对数组监听
May 30 Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 Javascript
javascript 控制弹出窗口
Apr 10 #Javascript
javascript应用:Iframe自适应其加载的内容高度
Apr 10 #Javascript
用javascript动态调整iframe高度的代码
Apr 10 #Javascript
Javascript下的keyCode键码值表
Apr 10 #Javascript
用javascript控制iframe滚动的代码
Apr 10 #Javascript
经常用到的JavasScript事件的翻译
Apr 09 #Javascript
在JavaScript中通过URL传递汉字的方法
Apr 09 #Javascript
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php实现将Session写入数据库
2015/07/26 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
Python序列操作之进阶篇
2016/12/08 Python
解决python 输出是省略号的问题
2018/04/19 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
软件配置管理有什么好处
2015/04/15 面试题
四查四看剖析材料
2014/02/14 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
健康教育评估方案
2014/05/25 职场文书
社会实践活动报告
2015/02/05 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
员工担保书范本
2015/09/22 职场文书