XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | 무중력고기 |
---|---|
출처URL | http://zero-gravity.tistory.com/245 |
관련 소스는 굉장히 많겠지만
그냥 검색해 나온 소스를 출처로 하면
http://zero-gravity.tistory.com/245 를 기반으로 XE 에 맞춰 조금 수정하면
ID input 주변에
<label for="idSaveCheck"><input type="checkbox" id="idSaveCheck"> ID 기억하기</label> 쓰고
별도의 js 파일을 생성해서 아래를 넣어주면 됩니다
ID 를 받는 input 폼의 name 부분을 XE 에서 일반적으로 사용하는 user_id 로 맞춰두었고
XE 에서는 jquery 사용시 $ 를 사용하면 잘 인식 못하는 경우가 있어서, 이를 jQuery 로 변경
( jquery-cookie 를 써도 되는데 귀찮아서 그냥 ㅡㅡ; )
jQuery(document).ready(function() {
// 저장된 쿠키값을 가져와서 ID 칸에 넣어준다. 없으면 공백으로 들어감.
var userInputId = getCookie("userInputId");
jQuery("input[name='user_id']").val(userInputId);
if(jQuery("input[name='user_id']").val() != ""){ // 그 전에 ID를 저장해서 처음 페이지 로딩 시, 입력 칸에 저장된 ID가 표시된 상태라면,
jQuery("#idSaveCheck").attr("checked", true); // ID 저장하기를 체크 상태로 두기.
}
jQuery("#idSaveCheck").change(function(){ // 체크박스에 변화가 있다면,
if(jQuery("#idSaveCheck").is(":checked")){ // ID 저장하기 체크했을 때,
var userInputId = jQuery("input[name='user_id']").val();
setCookie("userInputId", userInputId, 7); // 7일 동안 쿠키 보관
}else{ // ID 저장하기 체크 해제 시,
deleteCookie("userInputId");
}
});
// ID 저장하기를 체크한 상태에서 ID를 입력하는 경우, 이럴 때도 쿠키 저장.
jQuery("input[name='user_id']").keyup(function(){ // ID 입력 칸에 ID를 입력할 때,
if(jQuery("#idSaveCheck").is(":checked")){ // ID 저장하기를 체크한 상태라면,
var userInputId = jQuery("input[name='user_id']").val();
setCookie("userInputId", userInputId, 7); // 7일 동안 쿠키 보관
}
});
});
function setCookie(cookieName, value, exdays){
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var cookieValue = escape(value) + ((exdays==null) ? "" : "; expires=" + exdate.toGMTString());
document.cookie = cookieName + "=" + cookieValue;
}
function deleteCookie(cookieName){
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() - 1);
document.cookie = cookieName + "= " + "; expires=" + expireDate.toGMTString();
}
function getCookie(cookieName) {
cookieName = cookieName + '=';
var cookieData = document.cookie;
var start = cookieData.indexOf(cookieName);
var cookieValue = '';
if(start != -1){
start += cookieName.length;
var end = cookieData.indexOf(';', start);
if(end == -1)end = cookieData.length;
cookieValue = cookieData.substring(start, end);
}
return unescape(cookieValue);
}