Почему поле серое в IE8?

#asp.net #internet-explorer-8 #internet-explorer-7 #file-io

#asp.net #internet-explorer-8 #internet-explorer-7 #file-io

Вопрос:

Кто-нибудь может объяснить, почему мой input type="file" выделен серым цветом в IE8, но не в IE7. Его все еще можно использовать, но вы больше не можете вводить текст в поле.

 <INPUT id="fil1" type="file" size="44" name="fil1" runat="server">
  

IE7:

В IE7

IE8:

В IE8

Комментарии:

1. До вчерашнего дня все работало нормально, а теперь сломано!!! Я пытался удалить центр обновления Windows за последние два дня, но все еще безуспешно!! Долбаный Microsoft: если что-то работает 10 лет, неужели они не могут подумать, что многие люди на самом деле это используют!!

2. Почему этот вопрос был помечен как «нет». Конечно, это полезный вопрос, и он четко объяснен.

Ответ №1:

<input type='file'> рассматривается как поле ввода особого регистра во всех браузерах. Оно выглядит по-разному практически в каждом браузере, и его нелегко стилизовать с помощью CSS.

Причина этого в том, что браузеры считают, что это связано с проблемами безопасности, например, когда пользователи могут загружать файлы, не осознавая этого. Поэтому они обеспечивают стандартный внешний вид для него, так что поле всегда будет распознано таким, какое оно есть. Они также не позволяют CSS и Javascript получить доступ к полю, чтобы они не могли изменить его внешний вид или изменить его значение.

В случае с IE8 разработчики браузера решили, что единственный способ, которым пользователю должен быть разрешен доступ к полю, — это кнопка выбора файла. Это сознательное решение разработчиков IE для повышения безопасности. Вы ничего не можете с этим поделать.

Ради любопытства вам следует попробовать посмотреть, как <input type='field'> отображается в других браузерах — Firefox, Safari, Chrome, Opera … вы будете удивлены тем, насколько все они отличаются в способах отображения этого. Вероятно, это единственный элемент, отображаемый наиболее неаккуратно.

Комментарии:

1. Спасибо. Тогда просто нужно убедить моих стонущих клиентов, что это «положительное изменение». Сейчас они видят это совсем по-другому 🙂

2. @Urbycoz — Смотрите en.wikipedia.org/wiki/File_select — цитата: «Некоторые браузеры… больше нельзя вводить имя файла напрямую. Это мера безопасности …»

Ответ №2:

Потому что текстовое поле доступно только для чтения; что является ожидаемым поведением. Вы можете выбрать файл с помощью кнопки Обзор.

Ввод текста невозможен, поскольку файл находится на компьютере пользователя, и веб-страница не может напрямую обращаться к этим файлам.

Комментарии:

1. В IE7 ввод текста был опцией. Что, если вы знаете полный путь и по какой-то причине предпочитаете ввести его? Ему не нужно ни к чему обращаться.