繁体   English   中英

将自定义数据类型拖放到文本框中

[英]Drag and drop custom data type into text boxes

我正在开发一项利用HTML5拖放功能的功能。 此功能仅需要在Firefox中工作,因此我不必担心跨浏览器功能。 这是我遇到的问题:我只需要将数据拖到页面上的text和password字段中即可。 如果我使用常规的text / plain数据类型,它可以很好地工作,但是它也允许将数据拖动到搜索框中,这是不可接受的,因为我拖动的某些数据是敏感的(密码)。 另一种方法是使用自定义数据类型,但是当我这样做时,我的文本字段和密码字段将停止接受删除。 简而言之,我的代码现在看起来像这样:

document.getElementById('#init').addEventListener('dragstart', function(e){
    e.dataTransfer.setData('text/link-uri', 'www.test.com');
    e.dataTransfer.setData('text/sensitive', e.target.dataset.value);
    e.dataTransfer.effectAllowed = 'copy';
});  
window.addEventListener('dragenter', function(e){
    if (e.target.type !== 'text' || e.target.type !== 'password') {
       e.preventDefault();
    }
});
window.addEventListener('dragover', function(e){
    if (e.target.type !== 'text' || e.target.type !== 'password') {
       e.preventDefault();
    }
});
window.addEventListener('drop', function(e){
    var data = e.dataTarnsfer.getData('text/sensitive');
    e.target.value = data;
});

这里有解决方法吗? 我某种程度上需要禁止拖动到搜索框中的功能。 因此,我需要从具有文本/纯数据类型的允许目标列表中排除搜索框,或者使文本/密码字段理解新的数据类型。 任何指针将不胜感激。 谢谢! 卢卡

好吧,经过一番摸索,我能够克服这个问题。 对于感兴趣的任何人,我基本上都将文本/纯文本设置为一些虚假数据,并且仅在放置处理程序中使用我的自定义数据类型。 这样,对于我的表单,它将始终使用实际值,但是当我将值拖到搜索框时,它将选择伪造的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM