Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Открытие новой вкладки и редирект на другую страницу. (https://javascript.ru/forum/events/35861-otkrytie-novojj-vkladki-i-redirekt-na-druguyu-stranicu.html)

askot 24.02.2013 21:18

Открытие новой вкладки и редирект на другую страницу.
 
Добрый вечер, пытаюсь сделать так что бы у меня в браузере открылась новая вкладка с src формы ,а первоначальная вкладка редиректилась на другую страницу. Вся эта магия должна происходить после отправки формы.
Я пробовал вот так, но не получается.
<html>
<script>
function sendmail() {   
  window.location.href = "http://google.com";
  document.getElementById("frm").submit();
  return false;
}
</script>
<form method="POST" id= "frm" target='_blank' action="адрес новой вкладки">
<input name="receiver" type="hidden" value="41">
<input name="label" value="Что то там" type="hidden">
<input  value="Отправить" onclick="sendmail();" type="button" >
</form>
</html>


Происходит только открытие новой вкладки, старая остаётся прежней хотя там должен был произойти редирект на другую страницу.
Где может быть ошибка?

Deff 24.02.2013 21:58

<html>
<form method="POST" id= "frm" target='_blank' action="адрес новой вкладки">
<input name="receiver" type="hidden" value="41">
<input name="label" value="Что то там" type="hidden">
<input  value="Отправить" type="submit" onclick="setTimeout('location.href = \'http://google.com\'',100)">
</form>
</html>

Походу неувязки только в Хроме... и связаны с потерей фокуса при переходе

Наверно менять адрес нужно по событию возврате фокуса (при отправленной форме) к странице с отправленной формой

askot 24.02.2013 22:30

Ваш код работает в хроме, спасибо за ответ.
Так в чём был косяк? Js не видел часть или проблема в браузере??

Deff 24.02.2013 22:34

<html>
<script>
function sendmail() {   
  setTimeout('window.location.href = "http://google.com"',200);

  return false;
}
</script>
<form method="POST" id= "frm" target='_blank' action="адрес новой вкладки">
<input name="receiver" type="hidden" value="41">
<input name="label" value="Что то там" type="hidden">
<a  onclick='document.getElementById("frm").submit();sendmail()'><button type="button">Oтправить</button></a>
</form>
</html>

danik.js 24.02.2013 22:49

Цитата:

Сообщение от Deff
<a  onclick='document.getElementById("frm").submit();s endmail()'><button type="button">Oтправить</button></a>

Мсье знает толк в извращениях:D

askot, Chrome (как минимум) обрабатывает сабмит форм и смену локэйшна иначе. Пока блок кода не отработает - сабмита не будет и локэйшн не сменится, в отличие от Firefox. Причем в хроме нельзя сменить локэйшн и засабмитить форму одновременно. Это решается сменой локэйшна по таймеру, с запозданием. Только не вздумайте копировать код который Deff дал 4ым постом - он иногда сам не понимает что кодит.


Часовой пояс GMT +3, время: 00:09.