HTML5 DnD dataTransfer setData или getData не работает во всех браузерах, кроме Firefox

Учти этоJSFiddle, Он отлично работает в Firefox (14.0.1), но не работает в Chrome (21.0.1180.75), Safari (?) И Opera (12.01?) В Windows (7) и OS X (10.8). Насколько я могу судить, проблема заключается либо сsetData() или жеgetData() методы наdataTransfer объект. Вот соответствующий код из JSFiddle.

var dragStartHandler = function (e) {
    e.originalEvent.dataTransfer.effectAllowed = "move";
    e.originalEvent.dataTransfer.setData("text/plain", this.id);
};

var dragEnterHandler = function (e) {
    //  dataTransferValue is a global variable declared higher up.
    //  No, I don't want to hear about why global variables are evil,
    //  that's not my issue.
    dataTransferValue = e.originalEvent.dataTransfer.getData("text/plain");

    console.log(dataTransferValue);
};

Насколько я могу судить, это должно работать совершенно нормально, и если вы посмотрите на консоль при перетаскивании элемента, вы увидите записанный идентификатор, что означает, что он просто нашел элемент и захватил его атрибут id. Вопрос в том, просто не устанавливает данные или не получает данные?

Я буду благодарен за предложения, потому что после недели работы над этим с тремя попытками и более чем 200 версиями я начинаю сходить с ума. Все, что я знаю, это то, что он работал в версии 60 или около того, и этот конкретный код не изменился вообще ...

Actually, one of the major differences between 6X and 124 is that I changed the event binding from live() to on(). I don't think that's the issue, but I've come to see a couple failures from Chrome when it comes to DnD while working on this. Это было опровергнуто. Метод привязки событий не влияет на проблему.

UPDATE

Я создал новыйJSFiddle это удаляет абсолютно все и оставляет привязки событий и обработчиков. Я проверил это с jQuery 1.7.2 и 1.8 с обоимиon() а такжеlive(), Проблема осталась, поэтому я опустил уровень, удалил все фреймворки и использовал чистый JavaScript. Проблемаstill сохранялась, поэтому, основываясь на моем тестировании, это не мой код, который дает сбой. Вместо этого кажется, что Chrome, Safari и Opera все реализуют либоsetData() или жеgetData() не в спецификации или просто не работает по той или иной причине. Пожалуйста, исправьте меня, если я ошибаюсь.

В любом случае, если вы посмотрите на новый JSFiddle, вы сможете повторить проблему, просто посмотрите на консоль, когда перетаскиваете элемент, предназначенный для принятия отбрасывания. Я пошел вперед и открыл билет схром, В конце концов, я все еще могу делать что-то не так, но я просто не знаю, как еще сделать DnD на этом этапе. Новый JSFiddle настолько урезан, насколько это возможно ...

Ответы на вопрос(8)

Ваш ответ на вопрос