2010-08-24 1 views
7

wysihat 및 contentEditable로 편집 가능한 훌륭한 텍스트 영역이 있습니다. 붙여 넣기 이벤트를 가로 채서 중지 시키거나 삽입을 허용하기 전에 DOM을 처리하는 방법이 정말로 필요합니다. 사람들이 편집 가능한 영역에 전체 웹 페이지를 붙여 넣을 수 있습니다.어떻게 contentEditable 붙여 넣기 이벤트를 잡을 수 있습니까?

이것이 가능합니까?

앞으로 와서 내 문앞에 도착하십시오. HTML5 전문가, 불!

답변

3

삽입 할 콘텐츠에 액세스 할 수 없습니다. 당신이 할 수있는 일

Ctrl 키 + V에 대한 몇 가지 정리 코드 실행 이벤트 리스너 추가입니다 (시간 제한과를, 그래서 붙여 넣은 텍스트보고)

1

에 따라 TextInput 이벤트가 발생 텍스트 붙여 넣기 전에를하고있다 ctrl + v와 텍스트 (컨텍스트 메뉴의 등)를 붙여 넣는 다른 방법 모두와 호환되며 붙여 넣기중인 내용을 보유 할 수있는 .data라는 속성이 있지만 브라우저에서 아직 채워지지 않은 것을 보지 못했습니다. textInput 이벤트를 지원합니다.

그러나 입력 이벤트는 붙여 넣기 이후에 발생합니다 (dom이 이미 변경된 경우). 따라서이 두 가지 중 일부 커플 링이 잠시 동안 작동 할 수 있습니다.

아니면 .. 그냥 붙여 넣기 이벤트를 사용할 수하며 onpaste 이벤트가 잘 작동

2

, 적어도 u는 거부 할 수 있습니다) 사용자 삽입 동작

someElement.onpaste = function() { 
    // doSomething() 
    return false; // to prevent user insert 
}