프로그래밍/JavaScipt 37

javascript Android mobile web obscures input

모바일 브라우저에서 시스템 키보드를 가져 오면 안드로이드에서 이슈발생.iOS Safari에서는 가장 가까운 스크롤링 부모를 찾아 적절히 수행하는 것으로 보인다.알아본 결과, Android 네이티브 브라우저의 버그라고 한다. 태그 위쪽이나 document ready후에 아래 코드를 넣으면 정상작동한다.if(/Android/.test(navigator.appVersion)) { window.addEventListener("resize", function() { if(document.activeElement.tagName=="INPUT" || document.activeElement.tagName=="TEXTAREA") { window.setTimeout(function() { // document.activ..

javascript lodash사용하여 객체합치기(merge)

1. w2ui grid에서 editable 사용하여 일괄수정 개발 필요하다.. - 수정 전 그리드 - 수정 후 그리드 w2ui grid에서는 edit필드에 변화가생기면 셀 오른쪽상단에 빨간표시가 생긴다. (우리가게 > 우리가게2로 수정한걸 기억 ㄱㄱ.)이후 변화된값을 가져오기위하여 getChanges() 메소드를 사용하면.. w2ui['grid'].getChanges(); 변화 된 셀의 정보만 가져와서 수정처리를 해주기 곤란하지않나..(모든셀의정보를 넘겨 수정프로시저를 태워서 변화되지않은 나머지 셀의 정보도 필요) 다행히 getChange()메소드를 통해 얻은 row키값을 알고있어서 아래와 같이 조지면 일단 row전체정보 와 수정된정보 를 얻을 수 있다. var getchanges = w2ui['grid..

javascript object equal 객체비교하기

리스트 > 변경값만을 빼내기위해서 사용 function isEquivalent(a, b) { var aProps = Object.getOwnPropertyNames(a); var bProps = Object.getOwnPropertyNames(b); if (aProps.length != bProps.length) { return false; } for (var i = 0; i < aProps.length; i++) { var propName = aProps[i]; if (a[propName] !== b[propName]) { return false; } } return true; } //사용 예 if(!isEquivalent(objectA[i], objectB[i])){ //오브젝트가 다르면 처리하는 구..

javascript google map api 반경내 업체 표시하기

1. include script 2. 로드시 geolocation 호출 / navigator.geolocation.getCurrentPosition $(window).on("load", function(){ navigator.geolocation.getCurrentPosition( fninitLoadMap, fnGpsNone, {maximumAge:10000, timeout:5000, enableHighAccuracy:true} ); //성공시함수, 실패시함수, ...{세팅해주면 모바일에서 좋음ㅋ} }); 3. 실패시 함수는 알림창띄우고, 성공시 ajax사용함 * 상단에서 서버언어로 가져와도 무방. function fninitLoadMap(position){ //position값 받아서 사용 var la..

javascript ajax로 동적 select box 가져오기

2 depth dynamic select boxjquery ajax으로 선택에 따라 달라지는 서브메뉴를 db에서 불러와야했음 ㅎ html : 선택 1 2 3 선택 js : function fnGetCtgSub(sParam){ var $target = $("select[name='ctg_sub_name']"); $target.empty(); if(sParam == ""){ $target.append("선택"); return; } $.ajax({ type: "POST", url: "/pages/etc/GetCtgSubList.php", async: false, data:{ P_NO : sParam }, dataType: "json", success: function(jdata) { if(jdata.lengt..

javascript http html5 geolocation api 사용제한

출처 : https://medium.com제목이 상당히 어렵다. 좀 더 설명을 붙이면, https와 같이 보안설정이 된 사이트가 아닌경우 getCurrentPosition()과 watchPosition()과 같은 HTML5 Geoloaction api를 사용하면 아래와 같은 에러를 뱉어내며 작동되지 않는다.getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.위 문..

javascript daum 주소검색 api https

다음주소검색 api 사용 1. SCRIPT IMPORT(https) script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js" 2. JS // 우편번호 찾기 화면을 넣을 element var element_layer = document.getElementById('layer'); function closeDaumPostcode() { // iframe을 넣은 element를 안보이게 한다. element_layer.style.display = 'none'; } function execDaumPostCode() { new daum.Postcode({ oncomplete: function(data) { // 검색결과 항목을 클릭했을때 실행할..

javascript iOS 10 모바일웹 pinch-to-zoom issue (user-scalable)

http://hellomrma.com/wp/ios-10-%EB%AA%A8%EB%B0%94%EC%9D%BC%EC%9B%B9-pinch-to-zoom-%EA%B8%B0%EB%8A%A5/ 애플이 최근 iOS 10 업데이트를 제공했다.일반적으로 pinch-to-zoom 기능을 이용하면 이미지나 웹사이트를 확대/축소 할 수 있다. 대부분의 모바일웹에서는 viewport 옵션에서 scale 을 고정 시킨다.1근데 이게 iOS 10 에서 기능이 먹히지 않는다. 구글링 해 보니,iOS 10 beta release note. To improve accessibility on websites in Safari, users can now pinch-to-zoom even when a website sets user-scal..

javascript ie pdf 설치 여부확인

크롬은 자체 pdf리더 지원 익스에서 체크할일 생김ㅋ function fnFoundPdf(){ var found = false; var info = ''; try{ acrobat4 = new ActiveXObject('PDF.PdfCtrl.1'); if (acrobat4){ found = true; info = 'v. 4.0'; } } catch (e){ //??? } if (!found){ try{ acrobat7 = new ActiveXObject('AcroPDF.PDF.1'); if (acrobat7){ found = true; info = 'v. 7+'; } } catch (e) { //??? } if (!found && navigator.plugins && navigator.plugins.len..