Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2014, 19:57
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Один я не знал про file.outerHTML=file.outerHTML или грабли?
Раньше удалял "файл" путем клонирования и удаления кнопки. Ну то есть юзер жмет "удалить" то, что выбрал и еще не загрузил - надо кнопку удалить, ибо валуе-её ридонли. Подумал мож с тех пор что новое появилось, ну а вдруг. Оказалось есть еще более старое

file.outerHTML=file.outerHTML

где file - реф кнопки (элемент).

В оригинале было про inner, я тоже подумал какой там иннер, там одни атрибуты - аутер проканал. Работает. Но как-то не заметно активного применения судя по результатам поиска.

Может оно и не работает?
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2014, 20:18
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Как вариант, можно поместить 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>

Последний раз редактировалось Octane, 14.10.2014 в 20:23.
Ответить с цитированием
  #3 (permalink)  
Старый 14.10.2014, 20:24
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Нормально так, да, мощно.

Мотив лезть проверять нет ли новых методов и возник из-за того, что скрипт лежит инлайн и должен быть максимально компактным.
Ответить с цитированием
  #4 (permalink)  
Старый 14.10.2014, 20:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Незаметно оно потому что outerHTML долго небыло в Firefox'е (до 11 версии, если верить ненавистной тебе MDN)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 14.10.2014, 20:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
скрипт лежит инлайн
Ну ты вася. Выдуманные правила - не повод говнокодить )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 14.10.2014, 20:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

file.parentNode.replaceChild(file.cloneNode(true),file)

file.outerHTML=file.outerHTML


Че, много сэкономил?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 14.10.2014, 21:21
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

file.value = '';
чем не устраивает?
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 14.10.2014, 21:58
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Aetae
чем не устраивает?
Ээээ, вот почему не было инфы-то по хитрым методам. Понятно, открыл старый проект, там было удаление но именно удаление вместе со строками в которых появлялся file, а у меня заклинило что и валуе так надо удалять, что оно конкретно ридонли.

И еще в том проекте заметил ликвидацию факепатха с комментом что он от Хрома. И до сих пор он там есть. Придется и тут чистить. В другой форме валуи файла передаются на сервер вместе с текстовым полем в котором копии этих имен файлов но сортированные пользователем - с этого поля все и валится в БД, прикольно будет потом попробовать открыть с этого с:\fakepath\somepic.png Каждый браузер просто обязан какую-нибудь какашку подсунуть.

Затупон: теперь-то я беру с files, с API, а там нет факепатхов, поэтому все и работало.

UPD, оказывается это кошерная спецификация показывать именно C:\fakepath\ никаких других букв. В чем глубокий смысл окодемиков w3c.org не пойму.

API наглушняк путь не возвращает, FF в своей проперти только показывает в консоли, а в переменную не выдает. И зачем фак тогда?

Последний раз редактировалось kostyanet, 14.10.2014 в 22:13.
Ответить с цитированием
  #9 (permalink)  
Старый 14.10.2014, 22:14
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от danik.js
Ну ты вася. Выдуманные правила - не повод говнокодить )
Это императив: в инлайне не писать ничего сложнее а+б=сидели 5 лет.
Ответить с цитированием
  #10 (permalink)  
Старый 14.10.2014, 22:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
ибо валуе-её ридонли
Сообщение от Aetae
file.value = '';
Странное ридонли.. kostyanet у тя обе руки оттуда растут, или только правая?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтоб функция выволнялась по click один раз или просто выполнялась? TaH4uk.pro jQuery 1 06.12.2012 22:41
Как соединить 2 div в одну строку или в один? vadim90k (X)HTML/CSS 3 03.09.2012 19:11
перевод в число или как прибавить один anton_vek Общие вопросы Javascript 3 26.08.2010 13:07
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 19:16
не получается вложить один эффект в другой svip Библиотеки/Тулкиты/Фреймворки 1 30.03.2008 11:07