多個jsp頁面共享一個js對象的超級方法
來源:易賢網 閱讀:2793 次 日期:2015-01-27 14:35:28
溫馨提示:易賢網小編為您整理了“多個jsp頁面共享一個js對象的超級方法”,方便廣大網友查閱!

今天,在項目中遇到一個問題,兩個js頁面要共享一個就js對象。js全局變量和靜態(tài)變量都不行,其他苦逼的小農們就不要去強求了。而LZ又不想用cookie來存放,一是不安全,二個人喜好。最后發(fā)現(xiàn)一種超級方法來解決這個困擾,那就是用window.top['_CACHE']來存放這個變量,即可實現(xiàn),不同Jsp頁面直接的對象共享。

var share = {

/**

* 跨框架數(shù)據共享接口

* @param {String} 存儲的數(shù)據名

* @param {Any} 將要存儲的任意數(shù)據(無此項則返回被查詢的數(shù)據)

*/

data: function (name, value) {

var top = window.top,

cache = top['_CACHE'] || {};

top['_CACHE'] = cache;

return value !== undefined ? cache[name] = value : cache[name];

},

/**

* 數(shù)據共享刪除接口

* @param {String} 刪除的數(shù)據名

*/

removeData: function (name) {

var cache = window.top['_CACHE'];

if (cache && cache[name]) delete cache[name];

}

};

下面貼上LZ的代碼:

LZ的一個jsp頁面為A.jsp,在A.jsp中點擊一個按鈕打開另一個B.jsp頁面。LZ的思路如下:

在A.jsp打開B.jsp的事件中,寫入如下代碼:

window.top['_CACHE'] = chatFrdList;

window.top['_CACHE'][frdUserId] = frdUserId;

其中,chatFrdList定義為var chatFrdList = new Object();

frdUserId為一個用戶的id。

那么,在B.jsp的一個事件中,就可以執(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; margi

n-bottom:0px; padding:0px; font-family:'courier new',courier,monospace">var keyId = e[0].id;

delete window.top['_CACHE'][keyId];// 關閉與該好友的聊天窗口時,將其從聊天表中移除</pre>

然后,LZ就可以在A.jsp的其他事件中操作window.top['_CACHE']了,這樣便能實現(xiàn)多個JSP頁面直接的js對象共享了。

更多信息請查看IT技術專欄

更多信息請查看腳本欄目
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網