드래그 앤 드롭은 어떻게하나요?

배고픈_

작동하지 않는 간단한 드래그 앤 드롭 !!!!!!

다른 스택 오버플로 게시물의 드래그 앤 드롭 코드를 사용했습니다.

파일을 놓을 때 파일 입력에 들어가도록 노력하고 있습니다.

다른 코드는 대부분 stylistic /이거나 파일 이름을 표시하기위한 것입니다.

<!DOCTYPE html>
<html lang="en">

<head>
    <link href="style.css" rel="stylesheet">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>

<body>
    <div id="dropContainer">
        Drag and drop a file
        <br>
        or
        <br>
        <input type="file" id="fileInput" hidden="hidden" />
        <button id="fakeButton">Select a file</button>
        <span id="fileText">No file Selected</span>
    </div>
    <script>
        const dropContainer = document.getElementById("dropContainer");
        const fileInput = document.getElementById("fileInput");
        const fakeButton = document.getElementById("fakeButton");
        const fileText = document.getElementById("fileText");
        fakeButton.addEventListener("click", () => {
            fileInput.click();
        });

        // dragover and dragenter events need to have 'preventDefault' called
        // in order for the 'drop' event to register. 
        // See: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_operations#droptargets
        dropContainer.ondragover = dropContainer.ondragenter = function (evt) {
            evt.preventDefault();
        };

        dropContainer.ondrop = function (evt) {
            // pretty simple -- but not for IE :(
            fileInput.files = evt.dataTransfer.files;

            // If you want to use some of the dropped files
            const dT = new DataTransfer();
            dT.items.add(evt.dataTransfer.files[0]);
            dT.items.add(evt.dataTransfer.files[3]);
            fileInput.files = dT.files;

            evt.preventDefault();
        };

        fileInput.addEventListener("change", () => {
            if (fileInput.value) {
                fileText.innerHTML = fileInput.value.match(/[\/\\]([\w\d\s\.\-\(\)]+)$/)[1];
            } else {
                fileText.innerHTML = "no file selected";
            }
        });
    </script>
</body>

</html>
Pastaleg

문제는 drop 이벤트에서 파일을 할당 할 때 파일 입력의 이벤트 리스너가 실행되지 않는다는 것입니다. fileInput.addEventListener("change", () => {

대신 해당 코드를 함수에 임베드하면 ondrop이벤트가 끝날 때 대신 호출 하여 예상되는 동작을 완료 할 수 있습니다.

const dropContainer = document.getElementById("dropContainer");
const fileInput = document.getElementById("fileInput");
const fakeButton = document.getElementById("fakeButton");
const fileText = document.getElementById("fileText");

function SetFileName() {
    if (fileInput.value) {
        fileText.innerHTML = fileInput.value.match(/[\/\\]([\w\d\s\.\-\(\)]+)$/)[1];
    } else {
        fileText.innerHTML = "no file selected";
    }
};

fakeButton.addEventListener("click", () => {
    fileInput.click();
});

// dragover and dragenter events need to have 'preventDefault' called
// in order for the 'drop' event to register. 
// See: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_operations#droptargets
dropContainer.ondragover = dropContainer.ondragenter = function(evt) {
    evt.preventDefault();
};

dropContainer.ondrop = function(evt) {
    // pretty simple -- but not for IE :(
    fileInput.files = evt.dataTransfer.files;

    // If you want to use some of the dropped files
    const dT = new DataTransfer();
    dT.items.add(evt.dataTransfer.files[0]);
    fileInput.files = dT.files;

    SetFileName()
};
<!DOCTYPE html>
<html lang="en">

<head>
    <link href="style.css" rel="stylesheet">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>

<body>
    <div id="dropContainer">
        Drag and drop a file
        <br>
        or
        <br>
        <input type="file" id="fileInput" hidden="hidden" />
        <button id="fakeButton">Select a file</button>
        <span id="fileText">No file Selected</span>
    </div>

</body>

</html>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Electronjs 드래그 앤 드롭

분류에서Dev

드래그 앤 드롭하여 순서를 변경하세요.

분류에서Dev

드래그 앤 드롭 된 요소를 드래그 가능하면서 드롭 가능하게 만들기

분류에서Dev

드래그 앤 드롭 플러그인을 드래그하여 HTML 컨트롤

분류에서Dev

Linux의 X 윈도우 시스템에서 "드래그 앤 드롭"은 어떻게 작동합니까?

분류에서Dev

동적 요소가있는 jQuery 드래그 앤 드롭

분류에서Dev

vaadin 드래그 앤 드롭 구성 요소

분류에서Dev

드래그 앤 드롭 정렬 요소 후 중복 생성

분류에서Dev

드래그 앤 드롭 요소 타겟팅

분류에서Dev

드래그 앤 드롭으로 대상 요소 제거

분류에서Dev

드래그 앤 드롭, 드래그 요소 ID 및 ID를 놓을 위치

분류에서Dev

순수한 phantomjs에서 어떻게 드래그 앤 드롭합니까?

분류에서Dev

드래그 앤 드롭 퀴즈는 어떻게 작동합니까?

분류에서Dev

드래그 앤 드롭 버튼 앱을 어떻게 할 수 있습니까?

분류에서Dev

야간 시계를 사용하여 드래그 앤 드롭

분류에서Dev

AngularJS를 사용하여 div 드래그 앤 드롭

분류에서Dev

ListWidget에서 ComboBox로 드래그 앤 드롭하는 방법

분류에서Dev

드래그 앤 드롭이 작동하지 않습니까?

분류에서Dev

jquery를 사용하여 jsp의 드래그 앤 드롭 기능

분류에서Dev

jquery를 사용하여 jsp의 드래그 앤 드롭 기능

분류에서Dev

jquery를 사용하여 이미지 드래그 앤 드롭

분류에서Dev

jQuery를 사용하여 드래그 앤 드롭 스왑

분류에서Dev

ScrollViewer에서 드래그 앤 드롭이 작동하지 않음

분류에서Dev

버튼을 드래그 앤 드롭 하시겠습니까?

분류에서Dev

여러 드래그 앤 드롭이 작동하지 않음

분류에서Dev

드래그되는 항목을 식별하는 드래그 앤 드롭

분류에서Dev

드래그 앤 드롭 드래그하는 동안 이미지 변경

분류에서Dev

드래그 앤 드롭 중 드래그 이벤트에 대해 투명하게 제어

분류에서Dev

jqueryui없이 드래그 앤 드롭?

Related 관련 기사

  1. 1

    Electronjs 드래그 앤 드롭

  2. 2

    드래그 앤 드롭하여 순서를 변경하세요.

  3. 3

    드래그 앤 드롭 된 요소를 드래그 가능하면서 드롭 가능하게 만들기

  4. 4

    드래그 앤 드롭 플러그인을 드래그하여 HTML 컨트롤

  5. 5

    Linux의 X 윈도우 시스템에서 "드래그 앤 드롭"은 어떻게 작동합니까?

  6. 6

    동적 요소가있는 jQuery 드래그 앤 드롭

  7. 7

    vaadin 드래그 앤 드롭 구성 요소

  8. 8

    드래그 앤 드롭 정렬 요소 후 중복 생성

  9. 9

    드래그 앤 드롭 요소 타겟팅

  10. 10

    드래그 앤 드롭으로 대상 요소 제거

  11. 11

    드래그 앤 드롭, 드래그 요소 ID 및 ID를 놓을 위치

  12. 12

    순수한 phantomjs에서 어떻게 드래그 앤 드롭합니까?

  13. 13

    드래그 앤 드롭 퀴즈는 어떻게 작동합니까?

  14. 14

    드래그 앤 드롭 버튼 앱을 어떻게 할 수 있습니까?

  15. 15

    야간 시계를 사용하여 드래그 앤 드롭

  16. 16

    AngularJS를 사용하여 div 드래그 앤 드롭

  17. 17

    ListWidget에서 ComboBox로 드래그 앤 드롭하는 방법

  18. 18

    드래그 앤 드롭이 작동하지 않습니까?

  19. 19

    jquery를 사용하여 jsp의 드래그 앤 드롭 기능

  20. 20

    jquery를 사용하여 jsp의 드래그 앤 드롭 기능

  21. 21

    jquery를 사용하여 이미지 드래그 앤 드롭

  22. 22

    jQuery를 사용하여 드래그 앤 드롭 스왑

  23. 23

    ScrollViewer에서 드래그 앤 드롭이 작동하지 않음

  24. 24

    버튼을 드래그 앤 드롭 하시겠습니까?

  25. 25

    여러 드래그 앤 드롭이 작동하지 않음

  26. 26

    드래그되는 항목을 식별하는 드래그 앤 드롭

  27. 27

    드래그 앤 드롭 드래그하는 동안 이미지 변경

  28. 28

    드래그 앤 드롭 중 드래그 이벤트에 대해 투명하게 제어

  29. 29

    jqueryui없이 드래그 앤 드롭?

뜨겁다태그

보관