window.top[_CACHE]實現(xiàn)多個jsp頁面共享一個js對象
今天,在項目中遇到一個問題,兩個js頁面要共享一個就js對象。js全局變量和靜態(tài)變量都不行,其他苦逼的小農(nóng)們就不要去強求了。而LZ又不想用cookie來存放,一是不安全,二個人喜好。最后發(fā)現(xiàn)一種超級方法來解決這個困擾,那就是用window.top['_CACHE']來存放這個變量,即可實現(xiàn),不同Jsp頁面直接的對象共享。
var share = { /** * 跨框架數(shù)據(jù)共享接口 * @param {String} 存儲的數(shù)據(jù)名 * @param {Any} 將要存儲的任意數(shù)據(jù)(無此項則返回被查詢的數(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的一個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; margin-bottom:0px; padding:0px; font-family:'courier new',courier,monospace">var keyId = e[0].id; delete window.top['_CACHE'][keyId];// 關(guān)閉與該好友的聊天窗口時,將其從聊天表中移除</pre>
然后,LZ就可以在A.jsp的其他事件中操作window.top['_CACHE']了,這樣便能實現(xiàn)多個JSP頁面直接的js對象共享了。
相關(guān)文章
JSP 中response.setContentType()的作用及參數(shù)
這篇文章主要介紹了JSP 中response.setContentType()的作用及參數(shù) 的相關(guān)資料,希望通過本能幫助到大家,讓大家理解使用這部分內(nèi)容,需要的朋友可以參考下2017-09-09JSP中include指令和include行為的區(qū)別
我們都知道在jsp中include有兩種形式,分別是2008-07-07JSP自定義標(biāo)簽-標(biāo)簽屬性_動力節(jié)點Java學(xué)院整理
對自定義標(biāo)簽添加一些屬性,可以使我們的標(biāo)簽功能更加靈活和復(fù)用。下面通過本文給大家分享JSP自定義標(biāo)簽-標(biāo)簽屬性的相關(guān)知識,感興趣的朋友一起看看吧2017-07-07Java Servlet生成JSON格式數(shù)據(jù)并用jQuery顯示的方法
這篇文章主要介紹了Java Servlet生成JSON格式數(shù)據(jù)并用jQuery顯示的方法,涉及jsp基于Servlet操作json數(shù)據(jù)及使用jQuery顯示的相關(guān)技巧,需要的朋友可以參考下2015-12-12