Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > JavaScript, DOM/DHTML > JS, окно диалога - выбор файла |
Автор: cupoma58 16.07.24, 17:58 |
Привет. Есть плеер <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> <video src="" id="player" class="player"></video> Загружаем, в плеер, файл - через окно выбора <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> baton.addEventListener('click', async ()=>{ if (window.isSecureContext){ try {var [fileHandle] = await window.showOpenFilePicker();} catch (error){'<font color="red">Упс, бро не тот</font>';} } else {console.log('<font color="red">Упс, так не катит</font>');} }); Ни окна выбора, ни сообщения, в консоли. Что посоветуете? |
Автор: Majestio 17.07.24, 00:07 |
Посоветую посмотреть мой пример <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <meta name='viewport' content='width=device-width, initial-scale=1, shrink-to-fit=no'> <title>Пример для showOpenFilePicker</title> <style> .player { background-color: orange; } .player::-webkit-media-controls { background-color: rgba(0, 0, 0, 0.1); color: white; } .player::-webkit-media-controls-panel { background-color: transparent; } </style> </head> <body> <video src="" id="player" class="player" controls></video> <br> <button id="baton">Клик сюда!</button> <script> window.onload = function () { var baton = document.getElementById("baton"); baton.addEventListener('click', async () => { const pickerOpts = { types: [ { description: "Видосы (.avi, .mkv, .mp4, .webm)", accept: { "video/avi": [".avi"], "video/x-matroska": [".mkv"], "video/mp4": [".mp4"], "video/webm": [".webm"], }, }, ], excludeAcceptAllOption: true, multiple: false, }; try { const [handle] = await window.showOpenFilePicker(pickerOpts); const file = await handle.getFile(); const fileURL = URL.createObjectURL(file); const player = document.getElementById("player"); player.src = fileURL; player.play(); } catch (err) { console.log('Error "' + err.name + '": ', err.message); } }); }; </script> </body> </html> |
Автор: cupoma58 17.07.24, 07:54 |
Ну, м-м-м, попробуем. Надо разобраться. Вообще-то, я предполагал наличие, в JS, чего-то вроде JFileChooser, но более гибкого. |
Автор: cupoma58 17.07.24, 10:44 |
Благодарю за скрипт. В этом виде он, у меня, заработал <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> f.addEventListener('click', async ()=>{ if (window.isSecureContext){ try { var [handle] = await window.showOpenFilePicker(), file = await handle.getFile(), fileURL = URL.createObjectURL(file), v = document.getElementById('v'); v.src = fileURL; } catch (err){console.log('Error "' + err.name + '": ', err.message);} } }); ...в другом бро. Мой, "рабочий" бро, не знал - что такое showOpenFilePicker. Пришлось скачать более современную версию. Я, так, понимаю - "добавить" showOpenFilePicker, в старую версию, будет затруднительно? |
Автор: Majestio 17.07.24, 13:10 |
Думаю да. Глянь доку по нему - там таблица реализаций в браузерах. |