UploadOnDragnDrop

Upload files on drag and drop on input field

目前为 2024-09-22 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name UploadOnDragnDrop
  3. // @namespace sheesh
  4. // @version 1.1
  5. // @author Ur Momma
  6. // @match https://shikme.chat/
  7. // @icon https://shikme.chat/default_images/icon.png?v=1528136794
  8. // @grant none
  9. // @description Upload files on drag and drop on input field
  10. // ==/UserScript==
  11. const globalFileInput = document.getElementById('content');
  12. const privateFileInput = document.getElementById('message_content');
  13. const fileRealInput = document.getElementById('chat_file');
  14. const privateFileRealInput = document.getElementById('private_file');
  15.  
  16. globalFileInput.addEventListener('dragover', (event) => {
  17. event.preventDefault();
  18. event.stopPropagation();
  19. globalFileInput.classList.add('dragover');
  20. });
  21.  
  22. globalFileInput.addEventListener('dragleave', (event) => {
  23. event.preventDefault();
  24. event.stopPropagation();
  25. globalFileInput.classList.remove('dragover');
  26. });
  27.  
  28. globalFileInput.addEventListener('drop', (event) => {
  29. event.preventDefault();
  30. event.stopPropagation();
  31. globalFileInput.classList.remove('dragover');
  32. const files = event.dataTransfer.files;
  33. if (files.length > 0) {
  34. fileRealInput.files = files;
  35. const event = new Event('change');
  36. fileRealInput.dispatchEvent(event);
  37. }
  38. });
  39.  
  40. privateFileInput.addEventListener('dragover', (event) => {
  41. event.preventDefault();
  42. event.stopPropagation();
  43. privateFileInput.classList.add('dragover');
  44. });
  45.  
  46. privateFileInput.addEventListener('dragleave', (event) => {
  47. event.preventDefault();
  48. event.stopPropagation();
  49. privateFileInput.classList.remove('dragover');
  50. });
  51.  
  52. privateFileInput.addEventListener('drop', (event) => {
  53. event.preventDefault();
  54. event.stopPropagation();
  55. privateFileInput.classList.remove('dragover');
  56. const files = event.dataTransfer.files;
  57. if (files.length > 0) {
  58. privateFileRealInput.files = files;
  59. const event = new Event('change');
  60. privateFileRealInput.dispatchEvent(event);
  61. }
  62. });