H

브라우저 detection

이거 유머글인데 geek 들이나 웃을수 있는거라서 여기에 올립니다.  개발자분들만 웃기실 것 같아서.....

브라우저가 모바일 브라우저인지 데스트탑 브라우저인지 어떻게 확인할 수 있나? (Stackoverflow 질문)

고수의 답변

이렇게 확인하고...

window.mobilecheck = function() {
var check = false;
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);
return check; }

(이렇게 해도 놓칠수 있다는 지적이 나옴.)

그럼 또 윈도우 창 넓이를 확인해서 2차적으로 확인하면 되지.

function detectmob() {
   if(window.innerWidth <= 800 && window.innerHeight <= 600) {
     return true;
   } else {
     return false;
   }
}

참고문서 와 사이트 : 


여기에 대한 천재의 지적 : 다 필요 없고,

if(typeof window.orientation !== 'undefined'){...}
이렇게 한줄 쓰면 되잖아.  
omg!!!!!!!!  ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

|

댓글 8개

stackoverflow 질문글를 좀 볼수 있을까요.
여기요

http://stackoverflow.com/a/11381730/989439
히힛 ..감사합니다 ^^
대략 느낌은 오는데... 잘은 모르겠다는..ㅋㅋㅋ

역시 이리 생각해도 이리 생각해도 이런방법이 있는 개발...
front-end 개발을 하다보면 방문자의 브라우저가 모바일인지 데스크탑인지 구분을 해서 거기에 맞는 레이아웃이나 모습, 그리고 특히 브라우저에 맞는 기능을 제공해 줘야 합니다.

예를 들자면 메뉴가 on hover 시 드랍다운 메뉴인 경우, 모바일 브라우져에서는 작동을 하지 않기 때문에 (모바일 브라우저에서는 마우스 오버를 알수 가 없죠), 브라우저에 맞는 기능의 메뉴를 제공해 줘야 하는거죠.

그래서 방문자가 어떤 브라우저로 사이트에 접근했는지를 알아내는 것은 매우 중요한 기능입니다.

그 판별법/판독법에 대해 많은 논의가 오고 가는데,

if(typeof window.orientation !== 'undefined')

이 한줄이 신의 한 수 인거죠!!!!

해석을 하자면

"만약 (if) 브라우저에 orientation 기능이 없으면 (!==) 그럼 너는 데스트 탑이야" 라고 판독하고 있는 것 입니다.

orientation 이란 모바일폰이나 아이패드등을 가로나 세로로 화면을 볼때 그걸 인식하는 기능인데 당연히 데스크탑에는 없는 기능입니다.

orientation 이 있고 없고, 이거 하나로로 브라우저를 판독!!!!!!!! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

저는 이거 처음에보고 미치도록 웃었었습니다. ㅋㅋㅋㅋ 너무나 기발한 방법이거든요.

이런걸 보면, 누구나 열심히 노력해서 고수가 될수는 있지만, 천재성은 타고나는 것 이다 라는 주장이 맞는 것 같습니다. ^^
orientation 기능이 그런 기능이시군요 좋은 정보 감사합니다^^

천재성은 타고나는 것이다 라는 주장에 한마디 더 붙이자면...

개발자용 머리가 따로 있는거 같아요.. 개발자에 뛰어난 머리 회전력을 돌리는 사람(?)이 있는거 같더라구요..
네. 제가 하고 싶었던 말씀을 해주시네요. 천재성이라기 보다 개발자용 뇌를 갖고 있는 사람들이 존재하는 것 같습니다.

또 벤처/엔젤 투자를 잘 받아내는 뇌를 갖고 있는 사람들도... 존재하는듯....

http://www.bangwithfriends.com/

페이스북에서 나랑 스섹에 동의할 만한 친구를 찾는 앱 입니다. 장난삼아 주말에 코어를 완성했답니다. (이틀만에)

수십억원 투자받음. ㅋㅋㅋㅋㅋ


http://hackya.com/us/snapchat-rejects-3billion-from-facebook/

스냅챗이라는 건데, 3주 걸려서 만들었답니다. (스탠포드대 학생 세명이) 한국의 카카오톡 처럼 채팅을 하게 해주는데, 다른점은 그림이나 비디오만 전송할 수 있습니다. 카카오톡 보다 훨씬 더 간단한 앱이죠. 그리고 전송후 최대 10초 후 삭제됩니다.

이걸 페이스북에서 3 billion (한화로 3.6 조원) 줄테니 팔라고 했는데 거절. ㅋㅋㅋㅋㅋㅋㅋㅋ
좋은 정보들 많이 알게 됬네요!

감사합니다!
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
12년 전 조회 1,147
12년 전 조회 952
12년 전 조회 1,377
12년 전 조회 1,451
12년 전 조회 6,162
12년 전 조회 1,468
12년 전 조회 708
12년 전 조회 549
12년 전 조회 588
12년 전 조회 672
12년 전 조회 921
12년 전 조회 1,546
12년 전 조회 1,048
12년 전 조회 1,296
12년 전 조회 545
12년 전 조회 640
12년 전 조회 2,642
12년 전 조회 1,731
12년 전 조회 1,448
12년 전 조회 3,284
12년 전 조회 691
12년 전 조회 2,461
12년 전 조회 2,045
12년 전 조회 1,878
12년 전 조회 1,956
12년 전 조회 908
12년 전 조회 1,455
12년 전 조회 1,462
12년 전 조회 928
12년 전 조회 3,304
12년 전 조회 606
12년 전 조회 1,093
12년 전 조회 1,511
12년 전 조회 1,914
12년 전 조회 766
12년 전 조회 1,471
12년 전 조회 848
12년 전 조회 2,429
12년 전 조회 877
12년 전 조회 580
12년 전 조회 792
12년 전 조회 2,356
12년 전 조회 1,869
12년 전 조회 4,183
12년 전 조회 1,477
12년 전 조회 1,915
12년 전 조회 1,286
12년 전 조회 1,282
12년 전 조회 779
12년 전 조회 828
12년 전 조회 1,747
12년 전 조회 846
12년 전 조회 610
12년 전 조회 1,177
12년 전 조회 1,515
12년 전 조회 767
12년 전 조회 872
12년 전 조회 1,112
12년 전 조회 1,881
12년 전 조회 770
12년 전 조회 1,032
12년 전 조회 2,973
12년 전 조회 756
12년 전 조회 673
12년 전 조회 566
12년 전 조회 1,335
12년 전 조회 1,146
12년 전 조회 3,806
12년 전 조회 958
12년 전 조회 828
12년 전 조회 714
12년 전 조회 582
12년 전 조회 1,110
12년 전 조회 832
12년 전 조회 976
12년 전 조회 500
12년 전 조회 531
12년 전 조회 663
12년 전 조회 1,070
12년 전 조회 1,050
12년 전 조회 536
12년 전 조회 904
12년 전 조회 4,696
12년 전 조회 2,703
12년 전 조회 969
12년 전 조회 715
12년 전 조회 1,508
12년 전 조회 868
12년 전 조회 5,258
12년 전 조회 6,336
12년 전 조회 1,173
12년 전 조회 936
12년 전 조회 586
12년 전 조회 1,111
12년 전 조회 1,004
12년 전 조회 989
12년 전 조회 769
12년 전 조회 1,062
12년 전 조회 1,456
12년 전 조회 1,623
🐛 버그신고