Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не допускаеться click() на input:file в Опере


Автор: Ciber SLasH 10.6.2005, 04:06
Возможно ли победить такое в Опере 7.x ?
Есть:
Код

<form onSubmit='return false'>
<input type=file name=file><br>
<button onClick=this.form.file.click()>Click</button>
</form>

в IE всё работает, а в Опере -- нет smile

Автор: diam 10.6.2005, 07:42
Ciber SLasH, когда работаешь с Opera, Gecko, KHTML, ориентируйся на DOM. То есть, ты мог бы написать так
Код

<form>
<input type="file" name="file">
<input type="button" value="click" onClick="var evt = new Event; evt.initEvent('click', true, true); this.form.elements['file'].dispatchEvent(evt)">
</form>

Но в случае с файлами это не поможет. Будет сгенерировано исключение. Браузеры вообще щепитильно относятся к работе с файлами, поэтому данный метод не пройдёт.

Встаёт ещё один вопрос: зачем это нужно? Ведь когда создаёшь <input type="file">, рядом появляется кнопка с надписью "browse" smile

Автор: Ciber SLasH 10.6.2005, 11:27
Цитата(diam @ 10.6.2005, 08:42)
Встаёт ещё один вопрос: зачем это нужно?

Это я просто хотел изменить внешний вид кнопки "Обзор...".
Вот здесь тоже это пытались сделать: http://forum.vingrad.ru/index.php?showtopic=54669

Автор: Sardar 10.6.2005, 17:41
Ciber SLasH закачка файла - личная фишка браузера, отображение, стили и прочее по усмотрению разработчиков. Если не в Опере то всё равно в Konquerror или ещё где заглючило бы smile

diam, оборот new Event в ИЕ не прокатит, что правильно, так как подобные системные обьекты должны создаваться только "фабричными" методами:
DOM2 document.createEvent или IE document.createEventObject

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)