헤르메스 LIFE

[jQuery] 클립보드 복사 & 붙여넣기 본문

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