2013-08-02 5 views
1

У меня вопрос о javascript и jquery.Откройте новую вкладку и запустите javascript в ней

У меня есть сценарий, как это:

  1. Я должен загрузить файл, отправив запрос POST на сервер. Я сделал это, используя невидимую форму, которая добавлена ​​в HTML, используя jquery.

  2. Моя страница загрузки имеет неявное обновление, созданное устаревшим кодом, и я не могу это изменить.

  3. Проблема в том, что когда я пытаюсь добавить невидимую форму на страницу, обновление происходит и убирает мою форму.

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

+2

Нет, вы не можете. Невозможно использовать JavaScript для высокоскоростного браузера пользователя таким образом **, к счастью **. – meagar

+0

@Teemu Они этого не делают. – meagar

+0

@Teemu Uh, каждый удаленный современный браузер предотвращает открытие и закрытие произвольных окон без взаимодействия с пользователем. «Блокировщики всплывающих окон» теперь встроены во все основные браузеры специально для предотвращения такого рода вещей ... Даже IE предотвращает такое прямое злоупотребление браузером, так как версия 7. – meagar

ответ

1

Добавьте атрибут [target] к вашему <form> и он сделает запрос на новой странице, а не поверх существующей страницы, содержащей <form>.

[target="_blank"], вероятно, будет работать, но если это приведет к созданию слишком большого количества страниц, вы можете использовать именованную страницу, чтобы создать только одну страницу загрузки ([target="downloadpage"]).

В качестве альтернативы вы можете попробовать создать свой запрос POST через объект XmlHttpRequest.

Смежные вопросы