页面只能打开一次Cooike如何实现


Posted in Javascript onDecember 04, 2012

最近在做webIM,嵌入到OA系统,由于WEBIM处在独立页面,所以如果多次点击就会出现多个页面,这样在IE6下,服务器推送会认不到页面.所以有了下面的代码:

<script language="javascript" type="text/javascript"> 
window.onload = function () { 
if (GetCookie("IsOpen") == "") { 
SetCookie("IsOpen", "1"); 
StartService(); 
} else { 
window.onunload = null; 
window.opener = null; 
window.open("", "_self"); 
window.close(); 
} 
} window.onunload = function () { 
if (GetCookie("IsOpen") != "") 
DeleteCookie("IsOpen"); 
} 
function GetCookieVal(offset) { 
/// <summary> 
/// //取得项名称为offset的cookie值 
/// </summary> 
/// <param name="name">Cookie名称</param> 
var endstr = document.cookie.indexOf(";", offset); 
if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(document.cookie.substring(offset, endstr)); 
} 
function GetCookie(name) { 
/// <summary> 
/// 根据名称获得Cookie值 
/// </summary> 
/// <param name="name">Cookie名称</param> 
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 ""; 
} 
function SetCookie(name, value) { 
/// <summary> 
/// 设置Cookie 
/// </summary> 
/// <param name="name">Cookie名称</param> 
/// <param name="value">Cookie值</param> 
var argc = SetCookie.arguments.length; 
var argv = SetCookie.arguments; 
var path = (argc > 3) ? argv[3] : null; 
var domain = (argc > 4) ? argv[4] : null; 
var secure = (argc > 5) ? argv[5] : false; 
document.cookie = name + "=" + value + 
((path == null) ? "" : ("; path=" + path)) + 
((domain == null) ? "" : ("; domain=" + domain)) + 
((secure == true) ? "; secure" : ""); 
} 
function DeleteCookie(name) { 
/// <summary> 
/// 删除Cookie 
/// </summary> 
/// <param name="name">Cookie名称</param> 
var exp = new Date(); 
exp.setTime(exp.getTime() - 1); 
var cval = GetCookie(name); 
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); 
} 
</script>

把上面的代码,放到head下面就可以了.呵呵够简单了吧?当然上面的代码主要解决的是用超链接打开的页面,如果是window.open打开的页面呢,那就更简单了,代码如下:
var win = null;//定义一个变量去判断就可以了 
if (win == null) 
{ 
win=window.open("Main.aspx", '', strfeatures); 
}

Javascript 相关文章推荐
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 Javascript
javascript瀑布流式图片懒加载实例
Jun 28 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
vue监听键盘事件的快捷方法【推荐】
Jul 11 Javascript
Node.js连接Sql Server 2008及数据层封装详解
Aug 27 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
微信js-sdk 录音功能的示例代码
Nov 01 Javascript
微信小程序全选多选效果实现代码解析
Jan 21 Javascript
Node.js API详解之 console模块用法详解
May 12 Javascript
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
解析John Resig Simple JavaScript Inheritance代码
Dec 03 #Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
Dec 03 #Javascript
js函数调用常用方法详解
Dec 03 #Javascript
JS随即打乱数组实现代码
Dec 03 #Javascript
JS图片预加载 JS实现图片预加载应用
Dec 03 #Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 #Javascript
js操作textarea 常用方法总结
Dec 03 #Javascript
You might like
人族 TERRAN 概述
2020/03/14 星际争霸
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
微信小程序学习之数据处理详解
2017/07/05 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
python实现图片批量剪切示例
2014/03/25 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
业务经理的岗位职责
2013/11/16 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
体育运动口号
2014/06/09 职场文书
邀请函的格式
2015/01/30 职场文书
死者家属慰问信
2015/03/24 职场文书
小平小道观后感
2015/06/09 职场文书
社区安全温馨提示语
2015/07/14 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
分享提高 Python 代码的可读性的技巧
2022/03/03 Python
SQL中的连接查询详解
2022/06/21 SQL Server
vue实现简易音乐播放器
2022/08/14 Vue.js