Поддержка IE8 для type = "file"? - PullRequest
       2

Поддержка IE8 для type = "file"?

2 голосов
/ 16 сентября 2011

У меня проблема с поддержкой IE8 с <input type="file"> на странице php, отображающей изображение, которое при нажатии открывает браузер файлов, чтобы выбрать файл для загрузки.

Это прекрасно работает с Firefox и Chromeи я почти уверен, что проблема в <input type="file"> и его поддержке IE8.В результате в IE8 изображение не отображается, и если я нажимаю на белый прямоугольник вместо изображения, ничего не происходит ...

Вот код:

<div class="file_wrap">
   <input id="file" type="file" name="file" onchange="sendfile();" />
</div>

И CSS:

.file_wrap {
   background: url('icon/add.gif');
   overflow:   hidden;
   width:      116px;
   height:     147px;
   cursor:     hand;
}

.file_wrap input {
   opacity:    0;
   font-size:  999px;
   cursor:     hand;
}

Может быть, некоторые из вас, ребята, сталкивались с этим раньше?

Ответы [ 2 ]

5 голосов
/ 16 сентября 2011

Настраиваемое оформление элемента <input type=file> явно не рекомендуется.

Во-первых, его внешний вид по умолчанию совершенно различен в разных браузерах (вы не упомянули Safari, который также отображает его совершенно по-другому, чем другие браузеры). Уже одно это сделало бы его довольно стильным.

Но, что более важно, большинство браузеров активно препятствуют работе ряда стандартных действий CSS и Javascript с элементами file из-за потенциальных проблем безопасности.

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

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

Эта страница предоставляет дополнительные сведения по этому вопросу и дает советы по ее успешному оформлению.

Надеюсь, это поможет.

2 голосов
/ 16 сентября 2011

В отличие от Chrome и Firefox, IE8 не открывает диалоговое окно «Выбор файла» при нажатии на текстовое поле, которое позже будет содержать имя файла, поэтому этот «хак» не будет работать.

Я не думаю, что с этим можно что-то сделать.Если вы хотите создать собственный стиль для поля загрузки файла, рассмотрите возможность использования решения на основе Flash, например SWFUpload .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...