页面只能打开一次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 相关文章推荐
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
判断iframe里的页面是否加载完成
Jun 06 Javascript
一个JavaScript防止表单重复提交的实例
Oct 21 Javascript
基于javascript实现动态显示当前系统时间
Jan 28 Javascript
浅析jQuery Ajax通用js封装
Jun 22 Javascript
简单谈谈React中的路由系统
Jul 25 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
详解基于vue-cli配置移动端自适应
Jan 13 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
Mar 05 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 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永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
python语言使用技巧分享
2016/05/31 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
python 模拟登陆163邮箱
2020/12/15 Python
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
欢迎领导标语
2014/06/27 职场文书
高中学校对照检查材料
2014/08/31 职场文书
学校计划生育责任书
2015/05/09 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android