簡體   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