HTML5規範提出了一個dropzone屬性,儘管尚未在任何瀏覽器中實現(儘管Opera在切換到WebKit之前似乎沒有這樣做)。它的格式是HTML5 dropzone屬性與dropEffect的關係
<div dropzone="copy f:image/png">
這意味着(我認爲...)的懸浮窗會「接受」,那就是 - 它會取消的dragover和的dragenter事件 - 如果拖動包含類型圖像/ PNG的文件。這看起來很公平,你仍然需要提供一個drop handler。
我的問題是「複製」部分 - 規範的目的是什麼。很清楚,只能有一個價值。這與dropEffect有什麼關係?雖然在神祕和不同的瀏覽器實現也籠罩中,dropEffect將應該與effectAllowed屬性結合使用,它會去是這樣的:
- ondragstart - 設置dataTransfer.effectAllowed爲「copyMove」
- ondragover - 根據您想要執行的操作將dataTransfer.dropEffect設置爲「複製」或「移動」。
Chrome將切換光標以指示覆制或移動將根據可在dragover期間動態設置的dropEffect進行。不過有趣的部分是,dropEffect可能根據例如與鼠標結合使用的組合鍵。因此,dropzone如何支持這個用例,因爲它只能有一個「操作」 - 這是因爲操作與「dropEffect」不同嗎?
的規範說這個......
懸浮窗的內容屬性的值必須沒有指定的三個反饋值(複製,移動和鏈接)的不止一個。如果沒有指定,則暗示複製值。
..這讓我覺得它可能只是一般的鼠標光標反饋? Chrome和Mozilla都不允許拖放dropEffect不是effectAllowed值之一。一種理論是,如果您選擇實施dragover並提供不同的dropEffect - 這將覆蓋操作?但大概是擺在首位使用懸浮窗的優點之一是,這樣你就不必實現的dragover /的dragenter和取消事件等
感謝閱讀...