用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应该怎样学
Apr 16 Javascript
JS多物体 任意值 链式 缓冲运动
Aug 10 Javascript
jquery及原生js获取select下拉框选中的值示例
Oct 25 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
JavaScript的RequireJS库入门指南
Jul 01 Javascript
总结在前端排序中遇到的问题
Jul 19 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
Vue项目中跨域问题解决方案
Jun 05 Javascript
Vue中util的工具函数实例详解
Jul 08 Javascript
vue学习笔记之Vue中css动画原理简单示例
Feb 29 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 函数使用方法与函数定义方法
2010/05/09 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
详解Nodejs mongoose
2018/06/10 NodeJs
jQuery pagination分页示例详解
2018/10/23 jQuery
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python实战之制作天气查询软件
2019/05/14 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Python容器类型公共方法总结
2020/08/19 Python
荷兰本土平价百货:HEMA
2017/10/23 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
服务标语大全
2014/06/18 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
写给医院的感谢信
2015/01/22 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
pytorch实现手写数字图片识别
2021/05/20 Python
Python移位密码、仿射变换解密实例代码
2021/06/27 Python