用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 20 Javascript
javascript中的self和this用法小结
Feb 08 Javascript
jquery 使用简明教程
Mar 05 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
AngularJS 教程及实例代码
Oct 23 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
JavaScript ES6常用基础知识总结
Feb 09 Javascript
ES6 Object属性新的写法实例小结
Jun 25 Javascript
vue如何实现动态加载脚本
Feb 05 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 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中将网址转换为超链接的函数
2011/09/02 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
代码生成器 document.write()
2007/04/15 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
Python的一些用法分享
2012/10/07 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python 重命名轴索引的方法
2018/11/10 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Python内存映射文件读写方式
2020/04/24 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
服装销售人员求职自我评价
2013/09/26 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
力学专业求职信
2014/07/23 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
给上级领导的感谢信
2015/01/22 职场文书
个人总结格式范文
2015/03/09 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS