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,048
12년 전 조회 858
12년 전 조회 1,278
12년 전 조회 1,351
12년 전 조회 6,052
12년 전 조회 1,368
12년 전 조회 597
12년 전 조회 449
12년 전 조회 474
12년 전 조회 579
12년 전 조회 820
12년 전 조회 1,442
12년 전 조회 949
12년 전 조회 1,180
12년 전 조회 446
12년 전 조회 543
12년 전 조회 2,541
12년 전 조회 1,623
12년 전 조회 1,341
12년 전 조회 3,180
12년 전 조회 592
12년 전 조회 2,365
12년 전 조회 1,935
12년 전 조회 1,779
12년 전 조회 1,861
12년 전 조회 806
12년 전 조회 1,349
12년 전 조회 1,350
12년 전 조회 835
12년 전 조회 3,193
12년 전 조회 491
12년 전 조회 996
12년 전 조회 1,396
12년 전 조회 1,819
12년 전 조회 664
12년 전 조회 1,368
12년 전 조회 738
12년 전 조회 2,335
12년 전 조회 779
12년 전 조회 477
12년 전 조회 692
12년 전 조회 2,256
12년 전 조회 1,774
12년 전 조회 4,089
12년 전 조회 1,378
12년 전 조회 1,813
12년 전 조회 1,196
12년 전 조회 1,182
12년 전 조회 672
12년 전 조회 727
12년 전 조회 1,645
12년 전 조회 748
12년 전 조회 504
12년 전 조회 1,071
12년 전 조회 1,407
12년 전 조회 663
12년 전 조회 765
12년 전 조회 1,004
12년 전 조회 1,779
12년 전 조회 677
12년 전 조회 919
12년 전 조회 2,883
12년 전 조회 658
12년 전 조회 567
12년 전 조회 462
12년 전 조회 1,235
12년 전 조회 1,050
12년 전 조회 3,705
12년 전 조회 858
12년 전 조회 729
12년 전 조회 603
12년 전 조회 482
12년 전 조회 1,002
12년 전 조회 732
12년 전 조회 868
12년 전 조회 394
12년 전 조회 433
12년 전 조회 565
12년 전 조회 970
12년 전 조회 954
12년 전 조회 438
12년 전 조회 806
12년 전 조회 4,593
12년 전 조회 2,605
12년 전 조회 858
12년 전 조회 615
12년 전 조회 1,413
12년 전 조회 781
12년 전 조회 5,158
12년 전 조회 6,234
12년 전 조회 1,070
12년 전 조회 838
12년 전 조회 484
12년 전 조회 1,009
12년 전 조회 903
12년 전 조회 881
12년 전 조회 651
12년 전 조회 953
12년 전 조회 1,359
12년 전 조회 1,529
🐛 버그신고