window.top[_CACHE]實(shí)現(xiàn)多個(gè)jsp頁面共享一個(gè)js對象
今天,在項(xiàng)目中遇到一個(gè)問題,兩個(gè)js頁面要共享一個(gè)就js對象。js全局變量和靜態(tài)變量都不行,其他苦逼的小農(nóng)們就不要去強(qiáng)求了。而LZ又不想用cookie來存放,一是不安全,二個(gè)人喜好。最后發(fā)現(xiàn)一種超級方法來解決這個(gè)困擾,那就是用window.top['_CACHE']來存放這個(gè)變量,即可實(shí)現(xiàn),不同Jsp頁面直接的對象共享。
var share = {
/**
* 跨框架數(shù)據(jù)共享接口
* @param {String} 存儲(chǔ)的數(shù)據(jù)名
* @param {Any} 將要存儲(chǔ)的任意數(shù)據(jù)(無此項(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頁面為A.jsp,在A.jsp中點(diǎn)擊一個(gè)按鈕打開另一個(gè)B.jsp頁面。LZ的思路如下:
在A.jsp打開B.jsp的事件中,寫入如下代碼:
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頁面直接的js對象共享了。
相關(guān)文章
JSP中的PreparedStatement對象操作數(shù)據(jù)庫的使用教程
這篇文章主要介紹了JSP中的PreparedStatement對象操作數(shù)據(jù)庫的使用教程,文中舉了一些使用PreparedStatement預(yù)處理語句對象進(jìn)行MySQL增刪查改的例子,需要的朋友可以參考下2016-04-04
eclipse配置tomcat開發(fā)Dynamic Web Project環(huán)境圖解
這篇文章主要介紹了基于Eclipse進(jìn)行Dynamic Web Project項(xiàng)目開發(fā)環(huán)境的整合,大家參考使用吧2013-12-12
ajax+json+Struts2實(shí)現(xiàn)list傳遞實(shí)例講解
應(yīng)付學(xué)習(xí)需要,需要通過ajax來獲取后臺的List集合里面的值,特做了一個(gè)實(shí)例并附上演示效果,希望本例對你有所幫助2013-04-04
實(shí)例解析JSP中EL表達(dá)式的各種運(yùn)用
這篇文章主要介紹了JSP中EL表達(dá)式的各種運(yùn)用,比如用EL處理數(shù)學(xué)運(yùn)算、內(nèi)置對象以及數(shù)據(jù)的存取等,代碼示例都相當(dāng)實(shí)用,需要的朋友可以參考下2016-04-04
JSP+XML構(gòu)架網(wǎng)站的實(shí)例
JSP+XML構(gòu)架網(wǎng)站的實(shí)例...2006-10-10

