页面只能打开一次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 相关文章推荐
几个javascript操作word的参考代码
Oct 26 Javascript
js 获取Listbox选择的值的代码
Apr 15 Javascript
js中function()使用方法
Dec 24 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
微信小程序 地图map实例详解
Jun 07 Javascript
微信小程序 页面跳转传值实现代码
Jul 27 Javascript
js生成word中图片处理方法
Jan 06 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
Mar 19 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 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可逆加密/解密函数分享
2012/09/25 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php的socket编程详解
2016/11/20 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
javascript中的new使用
2010/03/20 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Python实现partial改变方法默认参数
2014/08/18 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
pyhton列表转换为数组的实例
2018/04/04 Python
python实现京东秒杀功能
2018/07/30 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
西部世纪面试题
2014/12/05 面试题
学校读书活动总结
2014/06/30 职场文书
商铺门面租房协议书
2014/10/21 职场文书
公司介绍信范文
2015/01/31 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
2019销售早会主持词
2019/06/27 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
react 路由Link配置详解
2021/11/11 Javascript
分享Python获取本机IP地址的几种方法
2022/03/17 Python