Chrome / Safari | webkit | (ex. -webkit-border-radius) |
Firefox | moz | (ex. -moz-border-radius) |
Opera | o | (ex. -o-border-radius) |
Microsft | ms | (ex. -ms-border-radius) |
polyfill을 작성하려고 시도하는 것에 따라, 아래에 작성한 것과 같은 접두어 테스터를 찾을 수 있습니다.
/* * vendorPrefix.js - Copyright(c) Addy Osmani 2011. * http://github.com/addyosmani * Tests for native support of a browser property in a specific context * If supported, a value will be returned. */ function getPrefix(prop, context) { var vendorPrefixes = ['moz', 'webkit', 'khtml', 'o', 'ms'], upper = prop.charAt(0).toUpperCase() + prop.slice(1), pref, len = vendorPrefixes.length, q = null; while (len--) { q = vendorPrefixes[len]; if (context.toString().indexOf('style')) { q = q.charAt(0).toUpperCase() + q.slice(1); } if ((q + upper) in context) { pref = (q); } } if (prop in context) { pref = prop; } if (pref) { return '-' + pref.toLowerCase() + '-'; } return ''; } //LocalStorage test console.log(getPrefix('localStorage', window)); //Page Visibility API console.log(getPrefix('hidden', document)); //CSS3 transforms console.log(getPrefix('transform', document.createElement('div').style)); //CSS3 transitions console.log(getPrefix('transition', document.createElement('div').style)); //File API test (very basic test, ideally check against 'File' too) console.log(getPrefix('FileReader', window));
당신이 할 수있는 두 가지 다른 방법이 있습니다.
특정 기능에 대한 접두사 테스트에 접근합니다.
다른 브라우저 공급 업체에서도 초기 기능을 구현하는 경우 polyfill을 미래 보장하려면 벤더 프리픽스를 설정하는 것은 unfinalized 기능을 탐지하는 기능의 첫 단계 일뿐입니다.
이 섹션에서는 완성된 기능과 unfinalized 기능을 모두 감지하는 기능에 대해 더 자세히 설명 할 예정입니다.
기능이 지원되는지 여부를 감지하는 데 사용할 수있는 여러 가지 방법이 있지만 모든 기능이 모든 기능에 적용되는 것은 아닙니다.
여기에는 테스트가 필요합니다.
- 현재 창에서 해당 기능 속성이 존재하는 경우 (익스플로러 지원) - 기능 속성이 현재 문서에 존재하는 경우 - 기능 또는 그 기능 속성을 현재 문서의 새 요소로 만들 수있는 경우 - 기능 속성 또는 속성이 특정 요소 내에 존재하는 경우 (예 : 'placeholder'속성).
Cross-brower Testing
우리는 모든 개발자가 동일한 신뢰할 수있는 방식으로 브라우저 간 코드를 테스트한다고 가정하지만 이는 사실이 아닙니다.
'폴리필 (polyfills)에 관심이 있다면 브라우저에 도입된 새로운 기능을 중심으로 글을 쓰는 것이 좋습니다.
많은 시간을 할애할 수 있는 많은 프로젝트가 있습니다.
커뮤니티는 접근성을 위한 경계를 무너뜨리는데 도움이 되는 새롭고 유용한 솔루션을 항상 찾고 있으며,
앞에서 말했듯이 훌륭한 학습 활동입니다.'
따라서 polyfill의 작동 여부를 테스트하기 위해 두 가지 중 하나를 사용하지 않는 것이 좋습니다.
가양성 (false positive)의 위험을 피하려면 좀 더 안정적인 것이 필요합니다.
그렇다면 이상적인 테스트 설정은 무엇입니까?
개인적으로 Mac 용 VirtualBox를 IE 6, 8, 9, 10 및 기타 모든 최신 브라우저 용 Windows 7 이미지와 함께 사용합니다.
IE9 및 10PP2는 현재 문제없이 독립적으로 실행할 수 있지만 6 및 8에서는 이러한 독립 실행형 IE 실행 파일을 사용합니다.
위의 목록에서 IE7을 생략했다는 것을 알 수 있습니다.
IE7 테스트를 위해서는 WindowsXP 이미지와 원래 IE7 설치 사본 (Google을 통해 비교적 쉽게 찾을 수 있음)이 필요합니다.
위의 모든 설정을 얻는 데 어려움이 있을지 모르지만 필요할 때마다 VirtualBox를 백그라운드에서 쉽게 실행할 수 있습니다.
Conclusions(결론)
폴리필 (polyfills)에 관심이 있다면 브라우저에 도입 된 새로운 기능을 중심으로 글을 쓰는 것이 좋습니다. 많은 시간을 할애 할 수있는 많은 프로젝트가 있습니다. 지역 사회는 접근성을위한 경계를 무너 뜨리는 데 도움이되는 새롭고 유용한 솔루션을 항상 찾고 있으며 앞에서 말했듯이 훌륭한 학습 활동입니다.
*
추가적으로 자스민에 대해서는
http://webframeworks.kr/getstarted/jasmine/
이 곳에서 한국어로 내용을 확인할 수 있다!
html5.1 & html5.2 (0) | 2018.01.23 |
---|---|
<input type="file"> 검색영역(커스터마이징) - v2 (0) | 2018.01.15 |
<input type="file"> 검색영역(커스터마이징) chrome / safari / firefox 모두 적용시키기 (0) | 2018.01.15 |
type="number" maxLength (글자수제한) (0) | 2018.01.15 |
하위버전과 호환 (크로스브라우징) (0) | 2017.12.29 |
댓글 영역