5
<div id="asd" title="222">drag me</div>

<script>
var el = document.getElementById("asd");
el.draggable=true;
el.addEventListener("dragstart", function(ev){
    ev.stopPropagation();
    var dt = ev.dataTransfer;
    dt.effectAllowed = "copyMove";
        console.log(this.getAttribute("title") + " attr");
    dt.setData('Text', this.getAttribute("title"));
        console.log(dt.getData('Text') + " dt");
},false);
</script>

フィドル:

http://jsfiddle.net/vwjCa/

http://jsfiddle.net/vwjCa/2/ (テキストの代わりにここにカスタム タイプ)

Firefoxのプリントで:

222 attr
222 dt

クロームプリント:

222 attr
 dt

ここで問題はどこですか?前もって感謝します

4

2 に答える 2

9

自分自身に答える:

どうやらクロムはドロップイベントでのみdataTransferのデータを読み取ることができます

これはセキュリティ上の理由からです

たとえば、リモートページでクレジットカード番号を「ドラッグ」した場合、「ドロップ」しない限り、これは私のデータを読み取ることができないはずです

firefox も同じですが、イベントの「ドメイン」が同じであれば getData() を読み取ることができます

于 2012-08-18T16:09:05.157 に答える
3

Chrome には、特定の MIME タイプしか使用できないというバグがあります。'Text'コードをに変更してみてください'text/plain'。これはクロムで動作するはずです。

于 2012-08-15T17:35:16.470 に答える