개발/Javascript 15

input type 엔터키 서브밋 되는 현상

요런식으로 input text에 값 넣고 검색하는 화면을 만들었다. '검색' 버튼에 onclick 이벤트를 주고 onclick이 되면 파라미터들을 좀 더 채워넣어서 submit을 스크립트 함수에서 시키도록 했다. function search() { $('#search_form').append('').submit(); } 뭐 이런식으로? 마우스로 검색 버튼을 클릭했을 땐 잘 동작했다. 그런데 text에 값을 넣고 엔터를 치면 search() 함수에 들어오지 않고 바로 서브밋이 돼서 서버로 가는 것이었다. 검색 결과 아래 블로그에 잘 나와있었다. https://blog.outsider.ne.kr/292 input type text가 1개만 존재하면 바로 서브밋이 된다는 내용이다. (이유는 모름.. 브라우저들..

개발/Javascript 2017.02.14

모바일 웹 브라우저에서 앱 설치여부에 따라 앱 또는 마켓으로 이동시키기

모바일 웹 브라우저에서, 앱 설치 여부에 따라 마켓 또는 앱으로 이동 시키기.일종의 브릿지 페이지.. 먼저 아이폰의 경우..간단하다! var userAgent = navigator.userAgent;var visitedAt = (new Date()).getTime(); // 방문 시간 if (userAgent.match(/iPhone|iPad|iPod/)) { setTimeout( function() { if ((new Date()).getTime() - visitedAt < 2000) { location.href = "{마켓 주소}"; } }, 500); setTimeout(function() { location.href = "{커스텀 스킴 주소}"; }, 0);} 셋타임아웃을 이용해서 커스텀 스킴을 ..

개발/Javascript 2015.01.09

[jquery] Ajax로 배열 파라미터 넘길 때 인코딩 깨지는 현상

자바스크립트에서 배열을 만들어서 ajax로 파라미터를 보내려고 했다. 아래처럼.. 내가 원한 요청 URL은 이거였다. http://marobiana.tistory.com/test/save?value=aaa&value=bbb 근데 실제로 간것은.. 이렇게 깨짐 ㅎㅎ http://marobiana.tistory.com/test/save?value%5B%5D=aaa&value%5B%5D=bbb 해결법은 아래코드를 ajax 호출전에 추가하면 된다. jQuery.ajaxSettings.traditional = true; 스택오버플로에서 찾았는데, jquery 1.4 이상부터 요즘 스크립트 언어(루비나 php)같은 프레임워크를 수용하기 위해 반복적인 파라미터의 경우 자동으로 serialize를 한다고한다. 그것을 ..

개발/Javascript 2014.06.18

[jQuery] Ajax의 흐름과 예제

1. AJAX(Asynchronous Javascript and XML)란 무엇인가? Ajax의 예를들면, 네이버나 다음같은 포털사이트에 가보면, 메인페이지에서 뉴스 등 밑에 요런 버튼을 눌렀을 때 페이지가 Reloading 되지 않고 뜨는걸 볼 수있다. 보통 웹의 흐름에서는 새로운 URL로 호출 되면서 페이지가 새로 뿌려지지만,AJAX를 사용하면 일부만을 로드해올 수 있는 것이다.이름처럼 비동기 통신을 통해서. 2. 어떤 원리이고 흐름인가? 보통 웹사이트 들어갈 때 어떻게 들어가는가?브라우저 위에 주소창에 URL을 쓰고 들어간다. 그러면 브라우저가 그 URL(서버)로 연결시켜준다.서버에서 받아온 데이터들을 브라우저가 받아서 파싱해서 뿌려준다. 이게 보통 웹의 흐름이라면, AJAX는 AJAX ..

개발/Javascript 2013.06.14

Flash 위에 게시판 올리는 법

웹디자인 공부하던 시절에 통플래시 홈피를 만들었는데자바스크립트를 몰라서 게시판을 못얹었었다.그때 고생이 생각나서, 웹디자이너분들을 위해 정리해본다. 1. Flash에서 버튼에 Action주기 게시판 버튼에(타임라인에 들어가지 않게 조심) F9를 눌러 action을 준다. on(release) { getURL("Javascript:showHideBtn('board','show')"); } 게시판 이외에 버튼 모두에 다음 Action을 준다.(다른 버튼을 누를 때는 게시판이 보이지 않아야 하므로) on(release) { getURL("Javascript:showHideBtn('board','hide')"); } 2. HTML 페이지 플래시를 html 페이지에 로드시킨 후, 게시판이 들어갈 아이프레임을 만든..

개발/Javascript 2013.04.30

jqGrid] 동적으로 그리드 나타내기

아래처럼 main그리드가 존재한다. 맨 오른쪽 버튼을 누를 때, 그 행에 대한 서브그리드가 나타나도록 할 것이다. 이 것을 구현하고 실행해보면, 처음엔 아래에 서브그리드가 잘 나타나지만 다른 버튼을 누르면 동작하지 않는다. 그 이유는 jqGrid 특성상 그리드가 한번 그려지고 나면 더이상 새로 그려지지 않기 때문이다.그래서 꼼수를 써야하는데, 방법은 아래와 같다.(2번과 3번이 핵심) 1. main Grid의 complete 함수 추가 메인그리드가 다 그려지고 난 뒤, 서브그리드를 호출할 버튼을 만드는 것이다. gridComplete:function(){var ids = jQuery("#t").jqGrid('getDataIDs');for(var i=0; i";jQuery("#t").jqgrid('setR..

개발/Javascript 2013.04.30

자바스크립트 함수 형태, 클래스처럼 쓰는 법

자바스크립트의 함수는 객체의 속성을 갖고있다. 모든 함수 객체는 prototype이라는 프로퍼티를 갖고 있고, 이 속성의 값은 함수 자체를 값으로 갖는 constructor라는 속성이 있는 객체다. 객체이긴 하지만 호출을 할 수 있다는 특징이 있다. 즉, 아래처럼 aaa에 함수 자체를 갖고있을 수 있단 말이다. var aaa = function a {//구현} 자바스크립트 함수는 3가지 형태가 있다. 자바스크립트는 클래스가 없는데, 클래스처럼 사용할 수 있는 법이 있다.예제~ GOGO! 1. 가장 많이 쓰는 일반 함수 형태 function func_name() { // 구현.... } function foo() { // 구현.... } HTML 코드에서 부를 때는 onclick = func_name();..

개발/Javascript 2013.04.09