Отправить файл пользователю, затем загрузить новый URL с помощью Javascript - PullRequest
1 голос
/ 21 октября 2011

Мне нужно сделать файл доступным для пользователя, а также перенести его на новый URL. Код для отправки файла загрузки находится в моем обработчике отправки. Я делаю это так в Chrome и Firefox:

function submitMyForm() {
    document.forms[0].submit();
    window.open("http://www.myURL.com");
}

В Chrome и Firefox это работает отлично. Он открывает myURL.com в новой вкладке и предлагает пользователю открыть / сохранить файл, который я создал. Однако в IE9 новая вкладка для myURL.com открыта, но приглашение на загрузку скрыто, поскольку оно появляется в нижней части старой, первой вкладки, вне поля зрения пользователя.

Я пытался это исправить, придерживаясь только одной вкладки, например:

function submitMyForm() {
    document.forms[0].submit();
    window.location.href = "http://www.myURL.com";
}

Однако, это просто немедленно загружает новый URL и не вызывает мою функцию submit (), почти как если бы он просто полностью игнорировал эту строку; это происходит во всех браузерах, что еще хуже.

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

В итоге я добавил target = "_blank" в мою форму и выполнял различные функции на основе браузера Спасибо этой странице за помощь в обнаружении Chrome.

function submitform() {
    document.forms[0].submit();

    //Test for Chrome
    if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
        //this works in Chrome
        window.open("http://www.myURL.com");
    }
    else {
        //this works in IE9 and Firefox
        window.location.href = "http://www.myURL.com";
    }
}
0 голосов
/ 21 октября 2011

После отправки формы все действия на текущей странице прекращаются, если только вы не публикуете на новой странице (target = "") или в iframe.

...