HTML5 DnD dataTransfer setData ou getData não funciona em todos os navegadores, exceto Firefox

Considere istoJSFiddle. Funciona bem no Firefox (14.0.1), mas falha no Chrome (21.0.1180.75), Safari (?) E Opera (12.01?) Tanto no Windows (7) como no OS X (10.8). Tanto quanto eu posso dizer a questão é com osetData() ougetData() métodos nodataTransfer objeto. Aqui está o código relevante do 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);
};

Tanto quanto eu posso dizer isso deve funcionar perfeitamente bem e se você olhar para o console enquanto arrasta um item, você verá o id escrito para fora, o que significa que ele está encontrando o elemento muito bem e agarrando seu atributo id. A questão é, é apenas não definir os dados ou não obter os dados?

Eu apreciaria as sugestões porque depois de uma semana trabalhando com três tentativas e mais de 200 versões, estou começando a perder a cabeça. Tudo o que sei é que é usado para trabalhar na versão 60 ou mais e esse código específico não mudou em nada ...

Na verdade, uma das principais diferenças entre 6X e 124 é que eu mudei a ligação do evento delive() paraon(). Eu não acho que é o problema, mas eu vim para ver algumas falhas do Chrome quando se trata de DnD enquanto trabalhava nisso. Isso foi desmascarado. O método de ligação de evento não tem efeito sobre o problema.

ATUALIZAR

Eu criei um novoJSFiddle que elimina tudo e deixa a ligação e os manipuladores do evento. Eu testei com jQuery 1.7.2 e 1.8 com amboson() elive(). O problema persistiu, então reduzi um nível e removi todas as estruturas e usei JavaScript puro. O problemaainda persistiu, por isso com base no meu teste não é o meu código que está falhando. Em vez disso, parece que o Chrome, Safari e Opera estão todos implementandosetData() ougetData() off spec ou apenas falhando por algum motivo ou outro. Por favor me corrija se eu estiver errado.

De qualquer forma, se você der uma olhada no novo JSFiddle, você deve ser capaz de replicar o problema, basta olhar para o console quando estiver arrastando um elemento designado para aceitar um drop. Eu fui em frente e abri um bilhete comCromo. No final, eu ainda posso estar fazendo algo errado, mas eu simplesmente não sei mais como fazer o DnD neste momento. O novo JSFiddle é tão despojado quanto possível ...

questionAnswers(8)

yourAnswerToTheQuestion