Tôi hiện đang làm việc trên một dự án tại nơi làm việc bằng cách sử dụng API kéo và thả HTML5 để cung cấp chức năng bổ sung bao gồm kéo các mục vào và ra khỏi trình duyệt. Tôi hiện đang gặp các sự cố dành riêng cho Chrome (nếu không chỉ được thử nghiệm trong Firefox, hoạt động như mong đợi).GetData() kéo và thả của HTML5 chỉ hoạt động trên sự kiện thả trong Chrome?
Vấn đề là tôi không thể sử dụng phương thức event.dataTransfer.getData(type)
để trả lại tập dữ liệu trên sự kiện dragstart
trong bất kỳ sự kiện nào ngoại trừ sự kiện drop
.
tôi đặt sự kiện như vậy, sau khi liên kết với các sự kiện dragstart
(mà không lửa):
event.dataTransfer.setData('text/plain', "some string")
Sau đó, trong trường hợp drop
, tôi có thể nhận được tốt dữ liệu.
event.dataTransfer.getData('text/plain')
Tuy nhiên tôi không thể sử dụng cùng phương pháp như trên trên bất kỳ sự kiện nào khác (chẳng hạn như dragover
). Ngay cả khi tôi thử và sử dụng phương pháp trên trên dòng sau khi gọi số setData()
(tức là, trong số gọi lại dragstart
), thì nó vẫn sẽ trả về undefined
.
Vì vậy, trong Chrome, vấn đề là getData
trong Chrome sẽ luôn trả về undefined
, ngoại trừ trong cuộc gọi lại sự kiện drop
. (Trong Firefox, tôi có thể nhận được dữ liệu chính xác.)
Nếu bạn có tham chiếu đến đối tượng dataTransfer
của cùng một yếu tố kéo, vậy tại sao bạn không thể lấy dữ liệu cho đến khi nó bị xóa?
Chỉ cần tự hỏi:
- Có ai gặp khó khăn này với Chrome trước đây?
- Có cách giải quyết nào?
- Hoặc đó có phải là điều mà Chrome cần khắc phục không?
Resources: Specification for HTML5 drag and drop.
[Báo cáo lỗi này] (http://code.google.com/p/chromium/issues/detail?id=94023) dường như có liên quan. – pimvdb
bản sao có thể có của [bộ dữ liệuDataDDfer HTML5DD hoặc getData không hoạt động trong mọi trình duyệt ngoại trừ Firefox] (http://stackoverflow.com/questions/11927309/html5-dnd-datatransfer-setdata-or-getdata-not-working-in- mọi trình duyệt ngoại trừ-fi) – broofa