1. JavaScript / Говнокод #10256

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    <button type='button' id='button-download'>download zipfile</button>
    $("#button-download").live("click", function() {
        $.get("http://localhost/admin/zip/002140.zip"); // doesn't work?
    })

    Ссылка на скачивание файла, современный вариант.

    Запостил: mozg, 13 Мая 2012

    Комментарии (16) RSS

    • Я считаю, что с жуквери надо знакомить только после изучения HTML, CSS и доброй толики JavaScript.
      Иначе появляется не только такой звездец, но и цепляние на сайт и дергание jquery для малейшего чиха.
      А потом все жалуются, что браузеры с каждым годом все больше охочи до оперативной памяти.
      Ответить
      • Жуквери с её дурацким синтаксисом и нечитабельностью - не нужна. Максимум, чтобы делать анимации.
        Ответить
    • это вебдваноль
      Ответить
    • это же обычная защита от роботов и парсеров ссылок ... что вам не нравится?
      Ответить
      • Здесь, вообще-то, защита от всех.
        Ответить
      • Так то это ссылка для парсеров и роботов с защитой от пользователей) Но судя по мнению автора этого кода, что он не работает- это всё таки должна была быть кнопка на скачивание.
        Ответить
      • Побуду кэпом. Допустим, localhost заменили на адрес сервера. Куда будет скачиваться файл? Что будет с браузером, если по ссылке терабайтный архив?
        Ответить
    • "live" устарел - надо использовать "delegate". Только не понятно, зачем этот тут.
      Тег "button" опасен тем, что в общем случае вызывает сабмит формы (если размещен внтури формы). Поэтому наряду с гет-запросом может произойти перегрузка всей страницы и скачки не будет.
      Чтобы браузер понял, что делать с ответом на запрос (открыть стандартное браузерное окно загрузки файла), нужно перед ответом отправить соответствующие заголовки, а иначе пользователь не увидит ни каких изменений.
      Ответить
      • Чтобы не вызвался сабмит, нужно вызвать event.preventDefault(). Плохо будет, только если JS совсем выключен.

        А get() здесь не нужен. Достаточно старомодного window.location.

        Насчёт заголовков поясните свою мысль.
        Ответить

    Добавить комментарий