页面只能打开一次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 相关文章推荐
jquery png 透明解决方案(推荐)
Aug 21 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
简介JavaScript中的setHours()方法的使用
Jun 11 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
微信小程序中form 表单提交和取值实例详解
Apr 20 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
jQuery实现轮播图及其原理详解
Apr 12 jQuery
VuePress 静态网站生成方法步骤
Feb 14 Javascript
H5 js点击按钮复制文本到粘贴板
Nov 19 Javascript
解析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
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
Angular 4 指令快速入门教程
2017/06/07 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python中常用的8种字符串操作方法
2019/05/06 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Python post请求实现代码实例
2020/02/28 Python
编程用JAVA解析XML的方式
2013/07/07 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
项目合作协议书
2014/04/16 职场文书
人事任命书格式
2014/06/05 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
民间借贷被告代理词
2015/05/23 职场文书
博物馆观后感
2015/06/05 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
单位车辆管理制度
2015/08/05 职场文书
学困生转化工作总结
2015/08/13 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android
Go语言基础map用法及示例详解
2021/11/17 Golang