多個(gè)jsp頁(yè)面共享一個(gè)js對(duì)象的超級(jí)方法
今天,在項(xiàng)目中遇到一個(gè)問(wèn)題,兩個(gè)js頁(yè)面要共享一個(gè)就js對(duì)象。js全局變量和靜態(tài)變量都不行,其他苦逼的小農(nóng)們就不要去強(qiáng)求了。而LZ又不想用cookie來(lái)存放,一是不安全,二個(gè)人喜好。最后發(fā)現(xiàn)一種超級(jí)方法來(lái)解決這個(gè)困擾,那就是用window.top['_CACHE']來(lái)存放這個(gè)變量,即可實(shí)現(xiàn),不同Jsp頁(yè)面直接的對(duì)象共享。
var share = {
/**
* 跨框架數(shù)據(jù)共享接口
* @param {String} 存儲(chǔ)的數(shù)據(jù)名
* @param {Any} 將要存儲(chǔ)的任意數(shù)據(jù)(無(wú)此項(xiàng)則返回被查詢的數(shù)據(jù))
*/
data: function (name, value) {
var top = window.top,
cache = top['_CACHE'] || {};
top['_CACHE'] = cache;
return value !== undefined ? cache[name] = value : cache[name];
},
/**
* 數(shù)據(jù)共享刪除接口
* @param {String} 刪除的數(shù)據(jù)名
*/
removeData: function (name) {
var cache = window.top['_CACHE'];
if (cache && cache[name]) delete cache[name];
}
};
下面貼上LZ的代碼:
LZ的一個(gè)jsp頁(yè)面為A.jsp,在A.jsp中點(diǎn)擊一個(gè)按鈕打開(kāi)另一個(gè)B.jsp頁(yè)面。LZ的思路如下:
在A.jsp打開(kāi)B.jsp的事件中,寫(xiě)入如下代碼:
window.top['_CACHE'] = chatFrdList; window.top['_CACHE'][frdUserId] = frdUserId;
其中,chatFrdList定義為var chatFrdList = new Object();
frdUserId為一個(gè)用戶的id。
那么,在B.jsp的一個(gè)事件中,就可以執(zhí)行下面的操作:
<pre name="code" class="javascript" style="margin-top:0px; margin-bottom:0px; padding:0px; font-family:'courier new',courier,monospace">var e = document.getElementsByName("chatWindow");</pre><pre name="code" class="javascript" style="margin-top:0px; margin-bottom:0px; padding:0px; font-family:'courier new',courier,monospace">var keyId = e[0].id;
delete window.top['_CACHE'][keyId];// 關(guān)閉與該好友的聊天窗口時(shí),將其從聊天表中移除</pre>
然后,LZ就可以在A.jsp的其他事件中操作window.top['_CACHE']了,這樣便能實(shí)現(xiàn)多個(gè)JSP頁(yè)面直接的js對(duì)象共享了。
- JSP運(yùn)行原理和九大隱式對(duì)象說(shuō)明
- JSP response對(duì)象實(shí)現(xiàn)文件下載的兩種方式
- JSP隱含對(duì)象response實(shí)現(xiàn)文件下載的兩種方法
- Jsp中response對(duì)象的所有屬性詳細(xì)介紹
- JSP 相關(guān)對(duì)象的使用介紹
- JSP內(nèi)置對(duì)象:Request和Response的簡(jiǎn)單介紹及使用
- jsp內(nèi)置對(duì)象及方法詳細(xì)介紹
- JSP的內(nèi)部對(duì)象
- JSP開(kāi)發(fā)入門(mén)(四)--JSP的內(nèi)部對(duì)象
- JSP中隱式對(duì)象用法實(shí)例
相關(guān)文章
JSP自定義分頁(yè)標(biāo)簽TAG全過(guò)程
這篇文章主要介紹了JSP自定義分頁(yè)標(biāo)簽TAG全過(guò)程,比較實(shí)用,需要的朋友可以參考下2014-09-09
javascript通過(guò)url向jsp頁(yè)面?zhèn)鬟f中文參數(shù)導(dǎo)致亂碼解決方案
javascript通過(guò)url向jsp頁(yè)面?zhèn)鬟f中文參數(shù)亂碼,一直都是從事jsp開(kāi)發(fā)者比較煩心的是,于是本文介紹了一些解決方法,感興趣的朋友可以了解下2013-01-01
JSP+ MySQL中文亂碼問(wèn)題post提交亂碼解決方案
當(dāng)提交的數(shù)據(jù)中含有中文(比如變量姓名的值為中文)時(shí),mysql_insert.jsp頁(yè)面上顯示新增的那條記錄中的相應(yīng)中文(姓名的值)亂碼2013-08-08
jsp中兩個(gè)框中內(nèi)容互換可以添加也可以移除
這篇文章主要介紹了jsp中兩個(gè)框中內(nèi)容互換的具體實(shí)現(xiàn),就是可以添加也可以移除,詳細(xì)代碼如下2014-10-10
Spring 中 @Service 和 @Resource 注解的區(qū)別
這篇文章主要介紹了Spring @Service 和 @Resource 注解的區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-03-03
jsp 顯示springmvc modelmap傳遞的對(duì)象詳細(xì)介紹
這篇文章主要介紹了jsp 顯示springmvc modelmap傳遞的對(duì)象詳細(xì)介紹的相關(guān)資料,具有一定的參考價(jià)值,需要的朋友可以參考下2016-12-12
Java 項(xiàng)目生成靜態(tài)頁(yè)面的代碼
第一次做項(xiàng)目需要生成靜態(tài)頁(yè)面,網(wǎng)上很多大牛對(duì)將網(wǎng)頁(yè)生成靜態(tài)頁(yè)面有很多異議。說(shuō)一下我的看法。2009-07-07
JSP過(guò)濾器Filter配置過(guò)濾類型全部匯總
下面小編就為大家?guī)?lái)一篇JSP過(guò)濾器Filter配置過(guò)濾類型全部匯總。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02

