Я думаю, вы, возможно, придется объявить локальную переменную для него .... и не забудьте инициализировать его при запуске перетаскивания .... убить его, когда сопротивление конца ... (dragend/падение)
назначьте его в «DragStart» ..... (ПРИМЕЧАНИЕ: в dragstart u можно назначить любое значение dataTransfer с помощью «event.dataTransfer.setData» .... но он недоступен в DragEnter/DragOver)
, потому что «DragEnter» не может получить доступ к dataTransfer.getData() из-за соображений безопасности ... он ТОЛЬКО доступен в действии «onDrop» .....
видеть ссылки ниже: // Получить данные не могут быть использованы здесь (для отводящего кадра) за счет: http://msdn.microsoft.com/en-us/library/ie/ms536436(v=vs.85).aspx
// использовать dataTransfer.getData в DragEnter/DragOver не работает Chorme http://code.google.com/p/chromium/issues/detail?id=50009
//dataTransfer.getData доступен только в DROP для соображений безопасности .... http://code.google.com/p/chromium/issues/detail?id=2141
ИЛИ вы можете проверить по следующей ссылке ... смотрите, если это полезно: http://weblog.bocoup.com/using-datatransfer-with-jquery-events/
MORE: Вы также можете использовать LocalStorage/sessionStorage вызов, который сохранит данные в кэше браузера, LocalStorage может быть использован в Cross Window (но тот же браузер), sessionStorage доступен только одной и той же сессии. Просто сделать что-то вроде: В вашем DragStart ->
localStorage.setItem("DraggedFileName",myFileName);
В вашем DragEnter ->
var myFileName = undefined;
if(localStorage.getItem("DraggedFileName"))
myFileName = localStorage.getItem("DraggedFileName");
В вашем DropEvent и DragEnd ->
if(localStorage.getItem("DraggedFileName"))
localStorage.removeItem("DraggedFileName"); //Remove after Drop/DragEnd, clear it
Надеется, что это помогает .. ..
Какой браузер вы используете? – robertc
Chromium 16.0.912.75. – mkroman
[Это ошибка] (https://bugs.webkit.org/show_bug.cgi?id=44727), о которой вы должны знать, также [этот] (https://bugs.webkit.org/show_bug. cgi? id = 42872) – robertc