2014-01-04 4 views
0

У меня есть форма для загрузки некоторых файлов. Пользователь выбирает файл из раскрывающегося списка, а затем нажимает кнопку, чтобы выполнить загрузку. Код выглядит следующим образом:Как перенаправить на новую страницу после загрузки с помощью Javascript?

function downloadApp() 
    { 
    var dd = document.getElementById("OSselectDropdown"); 
    var OSchoice = dd.options[dd.selectedIndex].value; 
    if (OSchoice == "win") 
    { 
     window.location.href = "https://" + top.location.host + "/download/win_install.exe"; 
    } 
    if (OSchoice == "mac") 
    { 
     window.location.href = "https://" + top.location.host + "/download/mac_install.pkg"; 
    } 
    if (OSchoice == "linux") 
    { 
     window.location.href = "https://" + top.location.host + "/download/linux_install.tar.gz"; 
    } 

То, что я хочу для того чтобы достигнуть для пользователя, которые необходимо принять на новую страницу, после начала загрузки. Однако я не могу понять, как это сделать, потому что сама загрузка по существу является перенаправлением на место для загружаемого файла, используя window.location.href. Как только это будет обработано, кажется невозможным получить Javascript для выполнения второго window.location.href.

В идеале загрузка начнется, а затем пользователь автоматически запустится на новой странице, которую я укажу, в то время как загрузка продолжается как фоновый процесс.

Даже в идеале, на новой странице я хочу включить сообщение «Спасибо, что загрузил». Это сообщение должно появляться только на этой странице, когда пользователь был доставлен туда после прохождения процесса загрузки.

Является ли то, что я пытаюсь достичь, возможно?

(Я вижу, что на этом сайте есть много записей для перенаправления и загрузки, но, похоже, это проблема, в которой детали имеют значение, и ни одна из них не соответствовала моей ситуации достаточно близко, насколько я мог сказать .)

ответ

-1

пытаются location.href вместо window.location.href

+0

Спасибо за ответы. Однако, как я уже упомянул в другом ответе, использую ли я 'window.location',' location.href' или 'window.location.href', если у меня их два, используется только вторая из двух. – Questioner

0

первым либо перенаправить пользователя спасибо вам страницу с помощью -

window.location = thankYouPageURL; 

вы можете сохранить другой URL для каждой ОС или вы можете передавать параметры в процессе получения и обработки параметров GET на стороне JavaScript, используя некоторую библиотеку.

Или перейдите на ту же страницу в другую часть, используя хэш.

location.hash = "#" + thankYouHash; 

Вы также можете сделать наложение div или аналогичный подход для этого. после выбора параметров загрузки переключите видимость ThankYouDiv и скройте предыдущий div, где присутствовали параметры загрузки.

на странице благодарности/div/хэш запускается загрузка с использованием нового окна или iframe.

IFRAME -

function startDownload(downloadUrl) { 
    var downloadFrame = document.createElement("iframe"); 
    downloadFrame.setAttribute('src',downloadUrl); 
    downloadFrame.setAttribute('style',"border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px;"); 
    document.body.appendChild(downloadFrame); 
} 

Скачать Window -

function startDownload(downloadUrl) { 
    window.open(downloadUrl, 'download_window', 'toolbar=0,location=no,directories=0,status=0,scrollbars=0,resizeable=0,width=1,height=1,top=0,left=0'); 
    window.focus(); 
} 
Смежные вопросы