여러 jsp 페이지 에서 js 대상 을 공유 하 는 슈퍼 방법

오늘 프로젝트 에서 문제 가 하나 생 겼 습 니 다.두 개의 js 페이지 가 하 나 를 공유 하려 면 js 대상 입 니 다.js 전역 변수 와 정적 변 수 는 모두 안 되 고 다른 고 된 소농 들 은 강요 하지 마 세 요.LZ 는 쿠키 로 보관 하고 싶 지 않 습 니 다.하 나 는 안전 하지 않 고 두 사람 이 좋아 합 니 다.마지막 으로 이 고민 을 해결 하 는 슈퍼 방법 을 발견 했다.바로 window.top['CACHE']이 변 수 를 저장 하면 서로 다른 Jsp 페이지 의 직접적인 대상 공 유 를 실현 할 수 있 습 니 다.

var share = { 

/** 
*           
* @param {String}        
* @param {Any}          (            ) 
*/ 
data: function (name, value) { 
var top = window.top, 
cache = top['_CACHE'] || {}; 
top['_CACHE'] = cache; 

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

/** 
*          
* @param {String}        
*/ 
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 의 한 사건 에서 다음 작업 을 수행 할 수 있 습 니 다.

<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];//             ,         </pre>
그리고 LZ 는 A.jsp 의 다른 이벤트 에서 window.top['을 조작 할 수 있 습 니 다.CACHE']를 통 해 여러 JSP 페이지 의 직접적인 js 대상 공 유 를 실현 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기