页面只能打开一次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的数据类型检测
Jul 10 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
Aug 25 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
jquery任意位置浮动固定层插件用法实例
May 29 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
Oct 08 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
微信小程序云开发之云函数详解
May 16 Javascript
微信小程序实现上传多张图片、删除图片
Jul 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代码
2012/09/14 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
php中上传文件的的解决方案
2018/09/25 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
django ajax json的实例代码
2018/05/29 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python I/O与进程的详细讲解
2019/03/08 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
网管求职信
2014/03/03 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
会计人员演讲稿
2014/09/11 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis