用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 相关文章推荐
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
Oct 11 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
Apr 12 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
May 25 Javascript
js验证真实姓名与身份证号是否匹配
Oct 13 Javascript
Bootstrap每天必学之媒体对象
Nov 30 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
Oct 11 Javascript
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 Javascript
JavaScript实现alert弹框效果
Nov 19 Javascript
js实现随机点名
Jan 19 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
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
python生成器与迭代器详解
2019/01/01 Python
Python中如何导入类示例详解
2019/04/17 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Python Process多进程实现过程
2019/10/22 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
项目资料员岗位职责
2013/12/10 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
十佳家长事迹材料
2014/08/26 职场文书
工作经验交流材料
2014/12/30 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
使用HttpSessionListener监听器实战
2022/03/17 Java/Android