用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 相关文章推荐
测试你的JS的掌握程度的代码
Dec 09 Javascript
JavaScript Date对象 日期获取函数
Dec 19 Javascript
JS无限树状列表实现代码
Jan 11 Javascript
Javascript执行效率全面总结
Nov 04 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
jQuery制作网页版选项卡
Jul 28 Javascript
解决ionic和angular上拉加载的问题
Aug 03 Javascript
详解vuex状态管理模式
Nov 01 Javascript
帮你提高开发效率的JavaScript20个技巧
Jun 18 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准确取得服务器IP地址的方法
2015/06/02 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
jqTransform美化表单
2015/10/10 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
如何运行Python程序的方法
2013/04/21 Python
Python创建日历实例
2014/08/21 Python
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
python 网络爬虫初级实现代码
2016/02/27 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
python 并发下载器实现方法示例
2019/11/22 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
基于python实现查询ip地址来源
2020/06/02 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
中标通知书
2015/04/17 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
高三数学教学反思
2016/02/18 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
Java Spring Lifecycle的使用
2022/05/06 Java/Android