JSP&JavaScript&HTML
[jQuery] 클립보드 복사 & 붙여넣기
헤르메스의날개
2021. 2. 15. 17:07
728x90
엑셀에서 데이터 Row를 복사해서 붙여넣기
각 데이터는 공백으로 구분지어서 붙여넣어지면 됩니다.
여러건을 IN 절로 조회하는 것이 목적입니다.
Chrome 은 굳이 이렇게 하지 않아도 됩니다.
문제는 IE 입니다. ( IE는 현재 서비스가 중단됐지만... 실제 사용하는 곳은 아직도 많습니다. ㅠ.ㅠ )
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;
};
document.getElementById("srchTextCd").addEventListener('paste', function(e) {
var pastedText = undefined;
if (window.clipboardData && window.clipboardData.getData) { // IE
pastedText = window.clipboardData.getData('Text');
} else {
if (!e) e = event;
if (!e) return null;
if (e.clipboardData && e.clipboardData.getData) {
pastedText = e.clipboardData.getData('text/plain');
} else if(e.originalEvent && e.originalEvent.clipboardData) {
pastedText = e.originalEvent.clipboardData.getData('text/plain');
}
pastedText = pastedText.replace(/\r\n|\r|\n/gi," ");
if(BrowserVersionCheck){ {
$("#srchTextCd").val(pastedText)
} else {
return pastedText;
}
});
List<String> srchTextCdList = new ArrayList<>();
String[] srchTempTextCd = param.getString( "srchTextCd" ).trim().split( " " );
for ( int i = 0; i < srchTempTextCd.length; i++ ) {
logger.debug( "srchTempTextCd :: {}", srchTempTextCd[i] );
if ( srchTempProdCd[i].length() > 0 ) {
srchTextCdList.add( srchTempTextCd[i] );
}
}
param.put( "srchTextCd", param.getString( "srchTextCd" ).trim() );
param.put( "srchTextCdList", srchTextCdList );
logger.debug( "param :: {}", param );
MyBatis 적용
<choose>
<when test="srchTextCdList.size > 0">
<choose>
<when test="srchTextCdList.size == 1">
AND A.TEXT_CD LIKE '%' + #{srchTextCd} + '%'
</when>
</choose>
<choose>
<when test="srchTextCdList.size > 1">
AND A.TEXT_CD IN
<foreach item="item" index="i" collection="srchTextCdList" open="(" separator="," close=")">
#{item}
</foreach>
</when>
</choose>
</when>
</choose>
728x90