테스트 사이트 - 개발 중인 베타 버전입니다

브라우저 detection

· 11년 전 · 1343 · 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;
   }
}

참고문서 와 사이트 : 

http://www.quirksmode.org/js/detect.html
http://detectmobilebrowsers.com/

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

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 조원) 줄테니 팔라고 했는데 거절. ㅋㅋㅋㅋㅋㅋㅋㅋ
좋은 정보들 많이 알게 됬네요!

감사합니다!

게시글 목록

번호 제목
1717635
1717629
1717626
1717625
1717621
1717619
1717611
1717610
1717609
1717607
1717601
1717598
1717591
1717590
1717583
1717575
1717572
1717568
1717566
1717549
1717545
1717533
1717512
1717511
1717508
1717495
1717479
1717473
1717470
1717463