页面只能打开一次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实现页面滚动时层智能浮动定位实例探讨
Mar 29 Javascript
js中substring和substr的详细介绍与用法
Aug 29 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
原生javascript实现分页效果
Apr 21 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
Nov 14 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
JS非行间样式获取函数的实例代码
Jun 05 Javascript
vue实现文件上传功能
Aug 13 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
Sep 14 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 Javascript
Vue时间轴 vue-light-timeline的用法说明
Oct 29 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 SQLite类
2009/05/07 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
详解python里的命名规范
2018/07/16 Python
python模糊图片过滤的方法
2018/12/14 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
毕业生护理专业个人求职信范文
2014/01/04 职场文书
学习演讲稿范文
2014/05/10 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
公司辞职信模板
2015/05/13 职场文书
毕业生入职感言
2015/07/31 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS