用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 相关文章推荐
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
JS获得URL超链接的参数值实例代码
Jun 21 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
javascript判断office版本示例
Apr 11 Javascript
jquery实现的网页自动播放声音
Apr 30 Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
CSS3+JavaScript实现翻页幻灯片效果
Jun 28 Javascript
Require.js的基本用法详解
Jul 03 Javascript
JavaScript实现简单的双色球(实例讲解)
Jul 31 Javascript
微信小程序:数据存储、传值、取值详解
May 07 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获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python实现简单状态框架的方法
2015/03/19 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
车间工艺员岗位职责
2013/12/09 职场文书
户外活动总结范文
2014/04/30 职场文书
民族精神月活动总结
2014/08/28 职场文书
教导主任个人总结
2015/03/03 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python