页面只能打开一次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 使用手册(四)
Sep 23 Javascript
js DOM的学习笔记
Dec 22 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 Javascript
JS是按值传递还是按引用传递
Jan 30 Javascript
javascript实时显示当天日期的方法
May 20 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
Sep 04 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
解析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的cURL库简介及使用示例
2015/02/06 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
Javascript 继承机制实例
2009/08/12 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
基于Python绘制个人足迹地图
2020/06/01 Python
python中setuptools的作用是什么
2020/06/19 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
python接口自动化框架实战
2020/12/23 Python
numba提升python运行速度的实例方法
2021/01/25 Python
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
平安建设工作方案
2014/06/02 职场文书
社区活动总结范文
2015/05/07 职场文书
python实现批量移动文件
2021/04/05 Python