页面只能打开一次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 相关文章推荐
js获取控件位置以及不同浏览器中的差别介绍
Aug 08 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
Aug 21 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
纯js实现无限空间大小的本地存储
Jun 18 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
微信小程序 数组中的push与concat的区别
Jan 05 Javascript
vue的Virtual Dom实现snabbdom解密
May 03 Javascript
vue-cli中vue本地实现跨域调试接口
Jan 16 Javascript
推荐几个不错的console调试技巧实现
Dec 20 Javascript
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 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
php修改指定文件后缀的方法
2014/09/11 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Python 串口读写的实现方法
2019/06/12 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
python关于倒排列的知识点总结
2020/10/13 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
优秀辅导员事迹材料
2014/02/16 职场文书
教研活动总结
2014/04/28 职场文书
经济国贸专业求职信
2014/06/18 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
学校就业保障协议书
2019/06/24 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
配置Kubernetes外网访问集群
2022/03/31 Servers