H

브라우저 detection

· 2013-11-16 (토) 11:37:07 · 3127 · 8
이거 유머글인데 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 질문글를 좀 볼수 있을까요.
히힛 ..감사합니다 ^^
대략 느낌은 오는데... 잘은 모르겠다는..ㅋㅋㅋ

역시 이리 생각해도 이리 생각해도 이런방법이 있는 개발...
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 조원) 줄테니 팔라고 했는데 거절. ㅋㅋㅋㅋㅋㅋㅋㅋ
좋은 정보들 많이 알게 됬네요!

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

프로그램

8,188건
+
제목 글쓴이 날짜 조회
14-08-26 조회 3,375
14-08-26 조회 3,533
14-08-26 조회 4,089
14-08-26 조회 3,470
14-08-26 조회 3,694
14-08-26 조회 3,628
14-08-26 조회 3,399
14-08-26 조회 3,480
14-08-26 조회 3,462
14-08-26 조회 3,539
14-08-25 조회 4,015
14-08-16 조회 4,149
14-08-12 조회 4,035
14-08-05 조회 3,846
14-08-04 조회 4,567
14-08-04 조회 3,909
14-08-01 조회 4,982
14-07-29 조회 4,128
14-07-10 조회 4,034
14-07-08 조회 4,670
14-07-08 조회 4,197
14-07-05 조회 3,815
14-05-26 조회 5,350
14-05-26 조회 4,065
14-05-21 조회 4,475
14-05-19 조회 7,422
14-05-17 조회 6,727
14-04-30 조회 7,125
14-04-27 조회 4,549
14-04-26 조회 4,719
14-04-13 조회 4,811
14-04-13 조회 4,076
14-03-25 조회 6,414
14-03-25 조회 4,078
14-03-12 조회 3,890
14-03-12 조회 5,300
14-02-24 조회 4,606
13-12-27 조회 3,937
13-11-18 조회 4,251
13-11-18 조회 6,535
13-10-17 조회 4,554
13-10-03 조회 6,207
13-10-02 조회 4,109
13-09-29 조회 4,605
13-09-29 조회 3,955
13-09-17 조회 3,753
13-09-11 조회 5,965
13-09-09 조회 4,221
13-09-05 조회 9,291
13-08-23 조회 5,605
13-08-22 조회 5,128
13-08-22 조회 4,502
13-08-22 조회 4,965
13-08-17 조회 5,864
13-08-17 조회 4,091
13-07-11 조회 5,418
13-07-11 조회 4,353
13-07-08 조회 3,928
13-07-04 조회 4,154
13-07-04 조회 4,046
13-07-04 조회 3,934
13-07-03 조회 5,851
13-07-01 조회 3,691
13-07-01 조회 3,596
13-07-01 조회 4,492
13-06-21 조회 6,217
13-06-14 조회 4,782
13-06-11 조회 3,634
13-06-06 조회 5,328
13-06-05 조회 4,089
13-05-11 조회 4,801
13-05-10 조회 4,354
13-05-10 조회 4,617
13-05-10 조회 3,980
13-05-08 조회 4,344
13-05-08 조회 3,609
13-05-08 조회 4,009
13-05-08 조회 5,203
13-04-05 조회 5,998
13-03-31 조회 5,603
13-03-24 조회 3,945
13-03-24 조회 6,045
13-03-23 조회 3,620
13-03-21 조회 3,680
13-03-20 조회 3,728
13-03-20 조회 4,208
13-03-20 조회 3,686
13-03-20 조회 3,837
13-03-20 조회 6,022
13-03-20 조회 4,004
13-03-20 조회 4,705
13-03-19 조회 5,647
13-03-14 조회 3,758
13-03-14 조회 4,195
13-03-14 조회 4,476
13-03-08 조회 4,081
13-03-03 조회 4,510
13-02-24 조회 4,931
13-02-21 조회 4,649
13-02-19 조회 4,568