현재 FORM 인코딩은 'UTF-8' 이로 Submit 으로 외부로 파라미터를 전송하는데(서울시통합검색)

인코딩이 'EUC-KR' 이다.

Submit() 전송되는걸 보면 서울시 통합검색창에 한글이 깨져서 보인다..


구글링해서 <Form> 태그에 accept-charset="euc-kr" 속성을 넣어주면 된다고 해서 테스트를 해보니 

정상적으로 파라미터가 넘어갔다.(테스트는 거의 항상 크롬에서 했다.)


한참있다가 IE 에서 하니 안먹는다.. 'IE' 가 규약을 잘 안지켜서 그렇다는데..

혹시몰라서, IE, 크롬, 파이어폭스, 오페라 다해봤는데.. IE만 한글이 깨진다..


또, 욜 - 구글링... 찾았다! 인터넷에 나온거 해보면 안되서, 조금 이리저리 수정해서 지금 적용된 <Script> 소스다.


<script type="text/javascript">


   //IE 에서 accept-charset="euc-kr" 안먹음 해결

   var eucKrEncodng = function() {

       

       if( /MSIE/.test(navigator.userAgent) ) {

           

           document.charset = 'euc-kr';

           return true;

           document.charset = 'utf-8';

       } 

   };

</script>


위와같이 적용을 하면 한글이 모든 브라우저에서 깨지지는 않는다. 근데, 문제발생

IE에서 현재페이지 -> 서울시 통합검색을 하면 현재페이지에서 <Form action> 설정한 페이지로 이동을 해서 다시 현재페이지로 돌아오기 위해서 브라우저의 '뒤로가기'를 누르면 메뉴의 Text 부분이 모두 깨짐.

(해결방안 : 현재페이지에서 통합검색시 <Form Target="_blank"> 줘서 새창띄우기로 뒤로가기 방지)


<!-- 서울시 통합검색 -->

<form name="seoulSearch" action="http://search.seoul.go.kr/newsearch/newTotalSearch.jsp" method="post"                accept-charset="euc-kr" onsubmit="eucKrEncodng();" target="_blank">

     <input type="hidden" name="alias" value="arisu" />

         <fieldset>

                <legend>통합검색</legend>

                <label for="text" class="skip"><img src="<c:url value="/resources/images/cyber/common/skip.gif"/>"                    alt="서울시 통합검색"/></label>

                <input type="text" name="query" id="text" value="" />

                <input type="image" src="<c:url value="/resources/images/cyber/common/search.gif"/>" alt="검색" />

        </fieldset>

</form>





100 : Continue

101 : Switching protocols

200 : OK, 에러없이 전송 성공

201 : Created, POST 명령 실행 및 성공

202 : Accepted, 서버가 클라이언트 명령을 받음

203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부만 전송

204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음

205 : Reset content

206 : Partial content

300 : Multiple choices, 최근에 옮겨진 데이터를 요청

301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음

302 : Moved temporarily, 요구한 데이터가 변경된 URL에 있음을 명시

303 : See other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음

304 : Not modified

305 : Use proxy

400 : Bad request, 클라이언트의 잘못된 요청으로 처리할 수 없음

401 : Unauthorized, 클라이언트의 인증 실패

402 : Payment required, 예약됨

403 : Forbidden, 접근이 거부된 문서를 요청함

404 : Not found, 문서를 찾을 수 없음

405 : Method not allowed, 리소스를 허용안함

406 : Not acceptable, 허용할 수 없음

407 : Proxy authentication required, 프록시 인증 필요

408 : Request timeout, 요청시간이 지남

409 : Conflict

410 : Gone, 영구적으로 사용할 수 없음

411 : Length required

412 : Precondition failed, 전체조건 실패

413 : Request entity too large,

414 : Request-URI too long, URL이 너무 김

415 : Unsupported media type

500 : Internal server error, 내부서버 오류(잘못된 스크립트 실행시)

501 : Not implemented, 클라이언트에서 서버가 수행할 수 없는 행동을 요구함

502 : Bad gateway, 서버의 과부하 상태

503 : Service unavailable, 외부 서비스가 죽었거나 현재 멈춤 상태

504 : Gateway timeout

505 : HTTP version not supported

'공부 > ETC' 카테고리의 다른 글

ETC_[ Tomcat 다중 인스턴스 띄우기 ]  (0) 2014.11.06
ETC_[ Win7 Telnet 설정 ]  (0) 2014.11.04
학교숙제자료  (0) 2013.04.16
ETC_[제발 a href="#" 좀 쓰지 말자]  (0) 2013.03.13
주저리_[날짜 약자]  (0) 2013.01.08

jQuery로 선택된 값 읽기

$("#selectBox option:selected").val();

$("select[name=name]").val();

 

jQuery로 선택된 내용 읽기

$("#selectBox option:selected").text();

 

선택된 위치

var index = $("#test option").index($("#test option:selected"));

 

-------------------------------------------------------------------

 

// Add options to the end of a select

$("#selectBox").append("<option value='1'>Apples</option>");

$("#selectBox").append("<option value='2'>After Apples</option>");

 

// Add options to the start of a select

$("#selectBox").prepend("<option value='0'>Before Apples</option>");

 

// Replace all the options with new options

$("#selectBox").html("<option value='1'>Some oranges</option><option value='2'>More Oranges</option>");

 

// Replace items at a certain index

$("#selectBox option:eq(1)").replaceWith("<option value='2'>Some apples</option>");

$("#selectBox option:eq(2)").replaceWith("<option value='3'>Some bananas</option>");

 

// 지정된 index 값으로 select 하기

$("#selectBox option:eq(2)").attr("selected", "selected");

 

// text 값으로 select 하기

$("#selectBox").val("Some oranges").attr("selected", "selected");

 

// value 값으로 select 하기

$("#selectBox").val("2");

 

// 지정된 인덱스 값의 item 삭제

$("#selectBox option:eq(0)").remove();

 

// 첫번째 item 삭제

$("#selectBox option:first").remove();

 

// 마지막 item 삭제

$("#selectBox option:last").remove();

 

// 선택된 옵션의 text 구하기

alert($("#selectBox option:selected").text());

 

// 선택된 옵션의 value 구하기

alert($("#selectBox option:selected").val());

 

// 선택된 옵션 index 구하기

alert($("#selectBox option").index($("#selectBox option:selected")));

 

// SelecBox 아이템 갯수 구하기

alert($("#selectBox option").size());

 

// 선택된 옵션 앞의 아이템 갯수

alert($("#selectBox option:selected").prevAll().size());

 

// 선택된 옵션 후의 아이템 갯수

alert($("#selectBox option:selected").nextAll().size());

 

// Insert an item in after a particular position

$("#selectBox option:eq(0)").after("<option value='4'>Some pears</option>");

 

// Insert an item in before a particular position

$("#selectBox option:eq(3)").before("<option value='5'>Some apricots</option>");

 

// Getting values when item is selected

$("#selectBox").change(function() {

           alert($(this).val());

           alert($(this).children("option:selected").text());

});

+ Recent posts