页面只能打开一次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 相关文章推荐
用window.location.href实现刷新另个框架页面
Mar 07 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
Jan 09 Javascript
jquery动态分页效果堪比时光网
Sep 25 Javascript
javascript中clipboardData对象用法详解
May 13 Javascript
7个jQuery最佳实践
Jan 12 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
JS生成不重复的随机数组的简单实例
Jul 10 Javascript
JS+CSS3实现超炫的散列画廊特效
Jul 16 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
如何提高javascript加载速度
Dec 26 Javascript
JS实现点击掉落特效
Jan 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_MySQL教程-第一天
2007/03/18 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
vue实现购物车小案例
2019/09/27 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
python3爬取各类天气信息
2018/02/24 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
numpy库reshape用法详解
2020/04/19 Python
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
党支部活动策划方案
2014/08/18 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技