頁面只能打開一次Cooike如何實(shí)現(xiàn)
最近在做webIM,嵌入到OA系統(tǒng),由于WEBIM處在獨(dú)立頁面,所以如果多次點(diǎn)擊就會(huì)出現(xiàn)多個(gè)頁面,這樣在IE6下,服務(wù)器推送會(huì)認(rèn)不到頁面.所以有了下面的代碼:
<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>
/// //取得項(xiàng)名稱為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>
/// 根據(jù)名稱獲得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>
/// 設(shè)置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下面就可以了.呵呵夠簡(jiǎn)單了吧?當(dāng)然上面的代碼主要解決的是用超鏈接打開的頁面,如果是window.open打開的頁面呢,那就更簡(jiǎn)單了,代碼如下:
var win = null;//定義一個(gè)變量去判斷就可以了
if (win == null)
{
win=window.open("Main.aspx", '', strfeatures);
}
相關(guān)文章
js瀏覽器本地存儲(chǔ)store.js介紹及應(yīng)用
store.js 是一個(gè)兼容所有瀏覽器的 LocalStorage 包裝器,不需要借助 Cookie 或者 Flash。store.js 即可實(shí)現(xiàn)本地存儲(chǔ)功能2014-05-05js實(shí)現(xiàn)簡(jiǎn)潔的TAB滑動(dòng)門效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)潔的TAB滑動(dòng)門效果代碼,通過簡(jiǎn)單的JavaScript自定義函數(shù)動(dòng)態(tài)遍歷頁面元素實(shí)現(xiàn)tab滑動(dòng)切換的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09動(dòng)態(tài)加載js、css等文件跨iframe實(shí)現(xiàn)
這篇文章主要介紹了動(dòng)態(tài)加載js、css等文件跨iframe實(shí)現(xiàn)的方法,需要的朋友可以參考下2014-02-02JSQL 基于客戶端的成績(jī)統(tǒng)計(jì)實(shí)現(xiàn)方法
JSQL應(yīng)用案例 基于客戶端的成績(jī)統(tǒng)計(jì),下面我把整個(gè)example的代碼貼出來,歡迎拍磚2010-05-05Bootstrap 樹控件使用經(jīng)驗(yàn)分享(圖文解說)
很多項(xiàng)目中使用樹來展示層級(jí)關(guān)系,還有些樹是為了選中項(xiàng)然后其他地方調(diào)用選中項(xiàng)。今天腳本之家小編給大家?guī)砹薆ootstrap 樹控件使用經(jīng)驗(yàn)分享,需要的朋友參考下吧2017-11-11javascript數(shù)組的擴(kuò)展實(shí)現(xiàn)代碼集合
非常不錯(cuò)的javascript數(shù)據(jù)功能增強(qiáng)函數(shù)2008-06-06編寫跨瀏覽器的javascript代碼必備[js多瀏覽器兼容寫法]
下面比較了幾種瀏覽器之間的差異,在寫javascript代碼時(shí) 要時(shí)刻注意這些差異2008-10-10JavaScript創(chuàng)建數(shù)組的方法詳解
這篇文章主要為大家介紹了JavaScript創(chuàng)建數(shù)組的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12