用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 相关文章推荐
写的htc的数据表格
Jan 20 Javascript
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
Jquery Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
JavaScript Chart 插件整理
Jun 18 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
Oct 29 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
vue中的计算属性的使用和vue实例的方法示例
Dec 04 Javascript
vue组件横向树实现代码
Aug 02 Javascript
layui 实现自动选择radio单选框(checked)的方法
Sep 03 Javascript
vue 获取url参数、get参数返回数组的操作
Nov 12 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实现在多维数组中查找特定value的方法
2015/07/29 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
IE8 浏览器Cookie的处理
2009/01/31 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
python实现二叉树的遍历
2017/12/11 Python
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
什么时候需要进行强制类型转换
2016/09/03 面试题
英语专业毕业生自荐信范文
2013/12/31 职场文书
致100米运动员广播稿
2014/02/14 职场文书
业务内勤岗位职责
2014/04/30 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
项目工作说明书
2014/07/29 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
出差报告格式模板
2014/11/06 职场文书
python实现会员管理系统
2022/03/18 Python
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电