多個(gè)jsp頁(yè)面共享一個(gè)js對(duì)象的超級(jí)方法
來(lái)源:易賢網(wǎng) 閱讀:2259 次 日期:2015-01-27 14:35:28
溫馨提示:易賢網(wǎng)小編為您整理了“多個(gè)jsp頁(yè)面共享一個(gè)js對(duì)象的超級(jí)方法”,方便廣大網(wǎng)友查閱!

今天,在項(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; margi

n-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ì)象共享了。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看腳本欄目
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)