Как открыть новую вкладку и изменить текущую страницу - PullRequest
2 голосов
/ 06 ноября 2008
<form id="frm_1" name="frm_1" target="_self" method="GET" action="local_page.php" >
</form>
<form id="tgt_1" name="tgt_1" target="_blank" method="POST" action="http://stackoverflow.com/" >
</form>
<a onclick="test(event, '1'); " href="#" >Click Here</a>
<script>
    function test(event, id){
        document.getElementById("frm_"+id).submit;
        document.getElementById("tgt_"+id).submit;
    }
</script>

Можно ли открыть новую вкладку / окно и изменить текущую страницу?

Ответы [ 4 ]

1 голос
/ 06 ноября 2008
<form id="frm_1" name="frm_1" target="_self" method="POST" action="local_page.php" >
<input type="hidden" name="vital_param" value="<?= $something ?>">
</form>

<form id="tgt_1" name="tgt_1" target="_blank" method="POST" action="http://stackoverflow.com/" >
</form>

<button type="submit" onclick="test(event, '1'); " >Click Here</button>

<script>
    function test(event, id){
    window.open( document.getElementById("tgt_"+id).action, "_blank");
    setTimeout('document.getElementById("frm_'+id+'").submit();', 1000);

    return true;
    }
</script>

tgt хранится в качестве источника целевого URL, может быть массивом или атрибутом. Без setyTimeout () браузер остается на текущей странице (FF / IE).

1 голос
/ 06 ноября 2008

Насколько я знаю, невозможно отправить две формы одновременно. Однако, поскольку вы используете PHP, почему бы не взглянуть на библиотеку cURL ? Он позволяет отправлять запросы POST и GET и анализировать результаты в PHP.

Чтобы ответить на вопрос в заголовке, если вы просто хотите открыть две страницы одним щелчком мыши, вы можете сделать это так (извините за встроенный JavaScript):

<a
    href="http://www.google.com"
    target="_blank"
    onclick="document.location.href='http://www.yahoo.com'"
>Click here to open Google in a new window and yahoo in this window</a>
0 голосов
/ 06 ноября 2008

Используйте атрибут target для элементов формы, чтобы они отправлялись, например, в. новое окно или iframe, без перезагрузки текущей страницы (прерывая любую другую отправку формы).

Ваш a.onclick также должен вернуть false, чтобы прекратить переход по ссылке href. На самом деле это должна быть кнопка, а не ссылка.

Избегайте подобных вещей, если у вас нет особых веских причин. В зависимости от того, что вы на самом деле пытаетесь сделать, обычно есть лучший способ.

0 голосов
/ 06 ноября 2008

Вы должны использовать window.open, чтобы открыть новую страницу, а затем отправить вкладку, например,

<form id="frm_1" name="frm_1" target="_self" method="GET" action="local_page.php" >
</form>
<a onclick="test(event, '1'); " href="#" >Click Here</a>
<script>
    function test(event, id){
        window.open("http://stackoverflow.com/", "_blank");
        document.getElementById("tgt_"+id).submit();
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...