차근차근/JAVA Script

붙여넣기 이벤트 감지 후 클립보드 내용 변경하기 - 안됨

예쁜꽃이피었으면 2022. 9. 5. 09:14

네이버 에디터를 사용중인데

에디터에 스크립트를  붙여넣기 하는 경우..텍스트를 변경하려고 한다.

 

일단 네이버 에디터만드는 부분 일부 

 

 

<script type="text/javascript">
var oEditors = [];

// 추가 글꼴 목록
//var aAdditionalFontSet = [["MS UI Gothic", "MS UI Gothic"], ["Comic Sans MS", "Comic Sans MS"],["TEST","TEST"]];

nhn.husky.EZCreator.createInIFrame({
	oAppRef: oEditors,
	elPlaceHolder: "ir1",
	sSkinURI: "SmartEditor2Skin.html",	
	htParams : {
		bUseToolbar : true,				// 툴바 사용 여부 (true:사용/ false:사용하지 않음)
		bUseVerticalResizer : true,		// 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)
		bUseModeChanger : true,			// 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)
		//aAdditionalFontList : aAdditionalFontSet,		// 추가 글꼴 목록
		fOnBeforeUnload : function(){
			//alert("완료!");
		}
	}, //boolean
	fOnAppLoad : function(){
		//예제 코드
		//oEditors.getById["ir1"].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
		fn_checkClipboard();//추가한 함수
    },
	fCreator: "createSEditor2"
});

fn_checkClipboard();를 추가했다.

 

function fn_checkClipboard(){
	var target_se2 = document.querySelector("iframe").contentWindow.document.querySelector("iframe").contentWindow.document.querySelector(".se2_inputarea");
	
	target_se2.addEventListener("paste",function(e){
		//기존 입력값 tempContent
        var tempContent = this.innerHTML; 
        //초기 입력값 checkData
		var checkData = (event.clipboardData || window.clipboardData).getData('text');
		
        checkData = checkData.replace(/mouseover/gi,'');
		checkData = checkData.replace(/onerror/gi,'');
		// replace로 바꿀 내용들 작성 //
                
		//setData 가..클립보드에 내용 넣는 거라고 봤는데 실제 에디터에 입력되는 내용과
        //붙여넣기할 데이터를 보면 변경되지 않았다
        event.clipboardData.setData('text/plain',checkData);
		
        //붙여넣기할 데이터 변경되었는지 한번 더 확인
        var test = event.clipboardData.getData('text');
		
        //에디터에 원하는대로 들어가지 않음..
		oEditors.getById["contents"].exec("PASTE_HTML", [tempContent+checkData]);
	});
}

 

 

붙여넣기 할 내용은 변경되지만

실제로 입력되는 값은 변경 전의 데이터이다.

어디서 봤는지는 모르겠는데

paste함수를 타자마자 함수실행을 멈추고 작업을 하던데............어디서 봤나 기억도 안나고..허허..

 

그래서 생각한게.. 붙여넣기 할 내용에

alert같은 데이터가 있으면

alert("입력 불가한 문자가 있습니다."); 이건 문구 띄우고 

붙여넣기를 중지 시킬 수는 없을까? 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[Javascript] Naver SmartEditor 사용 및 입력 글자 수 표시하기

스마트 에디터에 내용 초기화 및 내용 넣기(태그 제거없이) : 네이버 블로그

스마트 에디터 로드 후 내용 변경 감지 이벤트

코딩노트 :: 네이버 웹 스마트에디터 2.9.0 취약사항(디폴트 값)

붙여 넣기 이벤트시 JavaScript에서 클립 보드 데이터 가져 오기 (크로스 브라우저) 감지하고 붙여 넣을 - How IT

https://from2020.tistory.com/39

 

 

 

 

 

반응형

'차근차근 > JAVA Script' 카테고리의 다른 글

동적 셀렉트 박스 추가 삭제  (0) 2022.09.19
input type file.. 여러 건 업로드  (2) 2022.09.16
이미지 첨부파일 다운로드 시 유효성 체크하기  (0) 2022.07.07
viewport remove  (0) 2022.05.06
sort()  (0) 2022.04.07