页面只能打开一次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.pagination.js 无刷新分页实现步骤分享
May 23 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
jQuery中的select操作详解
Nov 29 Javascript
浅谈jQuery操作类数组的工具方法
Dec 23 Javascript
浅谈JavaScript的函数及作用域
Dec 30 Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
为什么要使用Vuex的介绍
Jan 19 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 Javascript
详解javascript中var与ES6规范中let、const区别与用法
Jan 11 Javascript
JS+css3实现幻灯片轮播图
Aug 14 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根据IP判断地区名信息的示例代码
2014/03/03 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
python多线程编程中的join函数使用心得
2014/09/02 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
使用python实现knn算法
2017/12/20 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
惠普香港官方商店:HP香港
2019/04/30 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
工作自我评价怎么写
2014/01/29 职场文书
股东授权委托书
2014/10/15 职场文书
留学推荐信怎么写
2015/03/26 职场文书
面试通知邮件
2015/04/20 职场文书
未婚证明范本
2015/06/15 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
使用Python获取字典键对应值的方法
2022/04/26 Python