Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将自定义数据类型拖放到文本框中_Javascript_Html_Drag And Drop - Fatal编程技术网

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

Javascript 将自定义数据类型拖放到文本框中,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,我正在开发一个利用HTML5拖放功能的功能。这个功能只需要在Firefox中使用,所以我不担心跨浏览器功能。这里是我遇到的问题:我需要能够将我的数据只拖到页面上的文本和密码字段中。如果我使用常规文本/纯数据类型,它可以正常工作,但它也允许将数据拖动到搜索框中,这是不可接受的,因为我拖动的一些数据是敏感的(密码)。另一种方法是使用自定义数据类型,但当我这样做时,我的文本和密码字段不再接受删除。简而言之,我现在的代码如下所示: document.getElementById('#init').add

我正在开发一个利用HTML5拖放功能的功能。这个功能只需要在Firefox中使用,所以我不担心跨浏览器功能。这里是我遇到的问题:我需要能够将我的数据只拖到页面上的文本和密码字段中。如果我使用常规文本/纯数据类型,它可以正常工作,但它也允许将数据拖动到搜索框中,这是不可接受的,因为我拖动的一些数据是敏感的(密码)。另一种方法是使用自定义数据类型,但当我这样做时,我的文本和密码字段不再接受删除。简而言之,我现在的代码如下所示:

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;
});
这里有解决办法吗?我需要禁止将其拖到搜索框中。因此,我需要将searchbox从具有文本/普通数据类型的允许目标列表中排除,或者使文本/密码字段理解新的数据类型。任何指点都将不胜感激。 谢谢
卢卡

好吧,经过一番摸索,我终于克服了这个问题。对于任何感兴趣的人,我基本上都会设置text/plain,以便生成一些虚假数据,并且只在drop处理程序中使用我的自定义数据类型。这样,对于我的表单,它总是使用实际值,但当我将值拖到搜索框时,它会拾取虚假数据