jQuery / ie6 — Нужна помощь с загрузкой файла в ie6

#jquery #internet-explorer-6

#jquery #internet-explorer-6

Вопрос:

У меня небольшая проблема с приложением, которое я пишу.

По сути, я использую jquery для замены обычной кнопки html «обзор», затем, когда кто-то выбирает файл, он отображает его рядом с кнопкой «Новая загрузка».

Я протестировал это повсюду, и это работает идеально… кроме гребаного ie6.

Мне было бы все равно, за исключением того, что мой клиент работает в корпоративной среде, которая не хочет тратить время или деньги, выходящие из каменного века.

Мне действительно нужен обходной путь, чтобы это заработало и в ie6.

Когда вы нажимаете кнопку «Создать», появляется диалоговое окно «Обзор», за исключением того, что все последующее не работает, и при нажатии на кнопку «Обновить» файл не загружается.

Я не очень хорошо работаю с ошибками ie6, поэтому я не знаю, с чего начать.

Код, который у меня есть для jQuery, а также диалоговое окно ввода и, выглядит следующим образом:

 <script type="text/javascript">
    function clickFileUpload() {
        $('.chart').trigger('click');
    }
</script>

<script type="text/javascript">
    $(function() {
        $(".chart").change(function (){
            var fileName = $(this).val();
            $(".filename").html(fileName);
        });
    });
</script>

<p class="box"><a href="#" onclick="clickFileUpload();" class="btn"><span class="icon icon-add">amp;nbsp;</span>Upload Chart</a>amp;nbsp;amp;nbsp;<span class="filename">No file chosen</span><input class="chart" name="chart" style="visibility: hidden;" type="file"></p>
  

Буду признателен за любую помощь.

Приветствия,

Ответ №1:

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

Мое предложение: не пытайтесь изменять стиль, сценарий или иным образом изменять входные данные файла. Ограничения существуют не просто так. Дизайнеру в вас это может не понравиться, но это позволяет избежать других будущих проблем из-за разных или меняющихся ограничений во всех браузерах.

Если вам действительно нужно это сделать, то для этого есть готовые скрипты, однако я никогда ими не пользовался и не могу сказать, работают ли они с IE6. Также существуют обходные пути для Flash и Java-апплетов.