sky*_*e26 5 javascript html5 drag-and-drop
<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>
Run Code Online (Sandbox Code Playgroud)
小提琴:
http://jsfiddle.net/vwjCa/2/(此处自定义类型而不是文本)
在firefox打印:
222 attr
222 dt
Run Code Online (Sandbox Code Playgroud)
在铬版画中:
222 attr
dt
Run Code Online (Sandbox Code Playgroud)
这里的问题在哪里?提前致谢
回答自己:
显然,chrome允许仅在drop事件中读取dataTransfer的数据
这是出于安全原因
例如,如果我"拖过"远程页面上的信用卡号码,除非我没有"丢弃",否则这个号码应该无法读取我的数据
firefox也是如此,但如果事件的"域"相同,则允许读取getData()