2010-12-07 4 views
1

오른쪽 클릭 후 붙여 넣기 이벤트를 처리하고 IE에서 붙여 넣기를 선택합니다. 예를 들자면 나는 이것을했다 :자바 스크립트로 IE에서 프레임에 onpaste 이벤트를 추가하는 방법은 무엇입니까?

parent.document.frames["myframe"].document.attachEvent('onclick', function(e) { 
     alert("paste"); 
}); 

그리고 괜찮아. 하지만 'onclick'대신 'onpaste'를 추가하면 작동하지 않습니다. 또한 jquery 아니라 javascript 사용하고 있습니다.

누구나 어떻게 작동하는지 아이디어가 있습니까?

감사

+0

가 참고로, 오페라 onpaste''지원하지 않습니다 ... 할 수 있지만 oninput' 지원'않습니다

희망 (불 때 입력의 다른 형태 중 사용자 페이스트). –

답변

3

paste 이벤트가 IE의 <body> 요소 위로 거품을 일으키지 않으므로 문서가 아닌 <body> 요소에 이벤트 처리기를 연결해야합니다. 예를 들어 내가 팀스의 대답에 댓글을 남기 한 정도로 담당자를 해달라고으로

parent.document.frames["myframe"].document.body.attachEvent('onpaste', function(e) { 
    alert("paste"); 
}); 
+0

나는 이것을 시도했지만 여전히 작동하지 않는다! – novellino

+0

@novellino : 문서에 텍스트 입력 또는 'contenteditable'요소가 있습니까? 페이스트는 그러한 요소 내에서만 유효합니다. –

+0

글쎄, 'parent.document.frames.myframe.document.body'가 null이거나 객체가 아니라는 오류 메시지가 나타납니다. 이것은 무엇을 의미 하는가? – novellino

2

@novellino가보고, 병은 여기를해야한다. 이것은 (어쨌든 그것을 사용하여 개봉 된 같은 your comment 외모를 읽고) jQuery를 사용하고 있습니다 : 이것은 IE와 FF, 오와 크롬 모두에서 작동

$("#iframeid").contents().find("body").bind('paste', function() { 
    // Your code here... 
}); 

합니다. 나도 "$(window).bind('paste', function(e){})"을 사용했다

그러나 팀이 말한대로 :

"붙여 넣기 이벤트가 IE에서 <body> 요소를 넘어되지 버블 것"

Therfore 난 부착 된 코드를 시도, 그게 나를 위해 일 했어. 알

관련 문제