1
0

prevent_file_upload.js 1.1 KB

1234567891011121314151617181920212223
  1. // Prevent file inputs from opening the file dialog on click
  2. let inputs = document.querySelectorAll("input");
  3. for (let input of inputs) {
  4. if (!input.getAttribute("data-dioxus-file-listener")) {
  5. // prevent file inputs from opening the file dialog on click
  6. const type = input.getAttribute("type");
  7. if (type === "file") {
  8. input.setAttribute("data-dioxus-file-listener", true);
  9. input.addEventListener("click", (event) => {
  10. let target = event.target;
  11. let target_id = find_real_id(target);
  12. if (target_id !== null) {
  13. const send = (event_name) => {
  14. const message = window.interpreter.serializeIpcMessage("file_dialog", { accept: target.getAttribute("accept"), directory: target.getAttribute("webkitdirectory") === "true", multiple: target.hasAttribute("multiple"), target: parseInt(target_id), bubbles: event_bubbles(event_name), event: event_name });
  15. window.ipc.postMessage(message);
  16. };
  17. send("change&input");
  18. }
  19. event.preventDefault();
  20. });
  21. }
  22. }
  23. }