2012-08-15 32 views
4
<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> 

FIDDLE:dataTransfer.set拖放的數據在chrome中不起作用?

http://jsfiddle.net/vwjCa/

http://jsfiddle.net/vwjCa/2/(自定義類型在這裏而不是文字)

在Firefox打印:

222 attr 
222 dt 

鉻印:

222 attr 
dt 

這裏的問題在哪裏? 在此先感謝

回答

7

回答自己:

顯然鉻只允許在drop事件

這是出於安全原因

例如讀取數據傳遞的數據如果我信用卡的「拖動結束」遠程文件上的數字,這不應該是能讀我的數據,除非我沒有「回落」

Firefox沒有相同的,但允許讀取的getData()如果事件的「域」是一樣的

2

有一個bug in chrome,允許您只能使用某些MIME類型。嘗試將代碼中的'Text'更改爲'text/plain',這應該在Chrome中工作。

+0

我試過任何類型的字符串! – skyline26 2012-08-15 17:37:00