[Javascript] 브라우저 버전 체크 & Text 클립보드(Clipboard) 복사하기
안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Javascript 브라우저 버전체크, 클립보드 복사 ] 입니다. : )
브라우저 버전, 종류 체크
▶ 브라우저 버전 체크 방법
var BrowserVersionCheck = function() {
var word;
var versionOrType = "another";
var ieName = navigator.appName;
var agent = navigator.userAgent.toLowerCase();
/*** 1. IE 버전 체크 ***/
// IE old version ( IE 10 or Lower )
if ( ieName == "Microsoft Internet Explorer" ){
word = "msie ";
}else{
// IE 11
if( agent.search("trident") > -1 ) word = "trident/.*rv:";
// IE 12 ( Microsoft Edge )
else if( agent.search("edge/") > -1 ) word = "edge/";
}
var reg = new RegExp( word + "([0-9]{1,})(\\.{0,}[0-9]{0,1})" );
if ( reg.exec( agent ) != null )
versionOrType = RegExp.$1 + RegExp.$2;
/*** 2. IE가 아닌 경우 브라우저 체크 ***/
if( versionOrType == "another" ){
if (agent.indexOf("chrome") != -1) versionOrType = "Chrome";
else if (agent.indexOf("opera") != -1) versionOrType = "Opera";
else if (agent.indexOf("firefox") != -1) versionOrType = "Firefox";
else if (agent.indexOf("safari") != -1) versionOrType = "Safari";
}
return versionOrType;
};
▶ text를 클립보드로 복사
- 기본적으로 IE에서는 window.clipboardData.함수를 사용하여 text를 클립보드로 복사할 수 있다.
1. 클립보드로 텍스트를 복사
window.clipboardData.setData("Text", "복사하고 싶은 Text");
2. 클립보드로 부터 복사된 내용을 가져올때
var 변수명 = window.clipboardData.getData("Text");
3. 발췌한 글뒤에 꼬리표 붙일때.
var txt = window.clipboardData.getData('Text');
txt = txt + '\r\n(출처 : 갓대희의 작은공간 )\r\n';
window.clipboardData.setData('Text', txt);
하지만 위의 window.clipboardData.함수가 작동하지 않는 경우가 있다.
- IE의 특정 버전
- 크롬
- 파이어폭스
- etc....
이럴땐 prompt창을 호출하여 복사하기를 유도 할 수도 있다.
ex) prompt("Ctrl+C를 눌러 클립보드로 복사하세요", "갓");
이를 모두 고려하여 클립보드 복사 스크립트를 작성해 보자.
▶ 최종 text 클립보드 복사 script
- 브라우전 버전 체크 활용하여 IE10 이하일때, 이외일때로 구분한다.
var BrowserVersionCheck = function() {
var boolean = false;
var ieName = navigator.appName;
var agent = navigator.userAgent.toLowerCase();
/*** 1. IE 버전 체크 ***/
// IE old version ( IE 10 or Lower )
if ( ieName == "Microsoft Internet Explorer" ){
boolean = true;
}else{
// IE 11
// 만약 IE11 에서 window.clipboardData.setData가 작동 한다면 true
// 작동 하지 않으면 false를 return 하여 준다.
if( agent.search("trident") > -1 ){
boolean = true;
}
// IE 12 ( Microsoft Edge )
else if( agent.search("edge/") > -1 ){
boolean = false;
}
}
// 이외 브라우저에서는 어차피 작동 하지 않으니 기본값인 false 리턴
return boolean;
};
if(BrowserVersionCheck){
window.clipboardData.setData("Text", "복사하고 싶은 Text");
alert("해당 URL이 복사 되었습니다. Ctrl + v 하시면 붙여 넣기가 가능합니다.");
} else{
temp = prompt("해당 URL을 복사하십시오.", "복사하고 싶은 Text");
}