Один я не знал про file.outerHTML=file.outerHTML или грабли?
Раньше удалял "файл" путем клонирования и удаления кнопки. Ну то есть юзер жмет "удалить" то, что выбрал и еще не загрузил - надо кнопку удалить, ибо валуе-её ридонли. Подумал мож с тех пор что новое появилось, ну а вдруг. Оказалось есть еще более старое
file.outerHTML=file.outerHTML где file - реф кнопки (элемент). В оригинале было про inner, я тоже подумал какой там иннер, там одни атрибуты - аутер проканал. Работает. Но как-то не заметно активного применения судя по результатам поиска. Может оно и не работает? |
Как вариант, можно поместить input в новую форму, выполнить form.reset() и вернуть input на место.
<!DOCTYPE html> <html> <head> <title>test</title> <meta charset="UTF-8"> </head> <body> <div> <input type="file"> </div> <button>Reset</button> <script> document.querySelector('button').onclick = function () { var fakeForm = document.createElement('form'), inputFile = document.querySelector('input[type="file"]'), inputFileContainer = inputFile.parentNode; fakeForm.appendChild(inputFile); fakeForm.reset(); inputFileContainer.appendChild(inputFile); }; </script> </body> </html> |
Нормально так, да, мощно.
Мотив лезть проверять нет ли новых методов и возник из-за того, что скрипт лежит инлайн и должен быть максимально компактным. |
Незаметно оно потому что outerHTML долго небыло в Firefox'е (до 11 версии, если верить ненавистной тебе MDN)
|
Цитата:
|
file.parentNode.replaceChild(file.cloneNode(true),file) file.outerHTML=file.outerHTML Че, много сэкономил? |
file.value = '';чем не устраивает? |
Цитата:
И еще в том проекте заметил ликвидацию факепатха с комментом что он от Хрома. И до сих пор он там есть. Придется и тут чистить. В другой форме валуи файла передаются на сервер вместе с текстовым полем в котором копии этих имен файлов но сортированные пользователем - с этого поля все и валится в БД, прикольно будет потом попробовать открыть с этого с:\fakepath\somepic.png Каждый браузер просто обязан какую-нибудь какашку подсунуть. Затупон: теперь-то я беру с files, с API, а там нет факепатхов, поэтому все и работало. UPD, оказывается это кошерная спецификация показывать именно C:\fakepath\ никаких других букв. В чем глубокий смысл окодемиков w3c.org не пойму. API наглушняк путь не возвращает, FF в своей проперти только показывает в консоли, а в переменную не выдает. И зачем фак тогда? |
Цитата:
|
Цитата:
Цитата:
|
Вам палец покажи - вы руку откусите (я старый рунетовец, и не такое видел) :)
|
Часовой пояс GMT +3, время: 20:33. |