현재 HTML5 드래그 앤 드롭 API를 사용하여 브라우저에서 항목을 드래그하는 등의 추가 기능을 제공하는 프로젝트에서 작업 중입니다. 현재 Chrome과 관련된 문제를 다룰 예정입니다 (그렇지 않으면 예상대로 작동하는 Firefox에서만 테스트 됨).HTML5 드래그 앤 드롭 getData()는 Chrome의 드롭 이벤트에서만 작동합니다.
event.dataTransfer.getData(type)
메서드를 사용하여 이벤트를 제외한 모든 이벤트에서 dragstart
이벤트에 설정된 데이터를 반환 할 수 없다는 것이 문제입니다.
dragstart
이벤트에 바인딩 한 후,과 같이 이벤트를 설정합니다
event.dataTransfer.setData('text/plain', "some string")
는 그 다음
drop
경우에, 나는 데이터 벌금을 얻을 수 있습니다.
event.dataTransfer.getData('text/plain')
그러나 나는 (예 : dragover
같은) 다른 이벤트에 위와 같은 방법을 사용할 수 없습니다. setData()
(즉, dragstart
콜백)을 호출 한 후 위의 메소드를 사용하여 시도해도 여전히 undefined
을 반환합니다.
Chrome의 경우 drop
이벤트 콜백을 제외하고 Chrome의 은 항상 Chrome에서 getData
을 반환합니다. (파이어 폭스에서는 올바른 데이터를 성공적으로 얻을 수 있습니다.) dataTransfer
같은 드래그 요소를 가진 객체에 대한 참조를 가지고 있다면 데이터가 떨어질 때까지 데이터를 가져올 수없는 이유는 무엇입니까?
그냥 궁금 :
- 사람이 전에 크롬이 문제가 있었나요?
- 어떤 해결 방법이 있습니까?
- 또는 Chrome에서 해결해야 할 부분입니까?
자료 : Specification for HTML5 drag and drop.
[이 버그 신고] (http://code.google.com/p/chromium/issues/detail?id=94023)와 관련된 것 같습니다. – pimvdb
가능한 [HTML5 DnD dataTransfer setData 또는 getData가 Firefox를 제외한 모든 브라우저에서 작동하지 않음] (http://stackoverflow.com/questions/11927309/html5-dnd-datatransfer-setdata-or-getdata-not-working-in- 모든 브라우저 제외) – broofa