Javascript: apri un determinato URL in una nuova scheda facendo clic su un pulsante


109

Vorrei avere un pulsante che reindirizza a un determinato URL e si apre in una nuova scheda. Come si può fare?

Risposte:


144

Usa questo:

<input type="button" value="button name" onclick="window.open('http://www.website.com/page')" />

Ha funzionato per me e si aprirà una nuova finestra "popup" anziché un nuovo browser o scheda completa. Puoi anche aggiungere variabili ad esso per impedirgli di mostrare caratteristiche specifiche del browser come segue:

onclick="window.open(this.href,'popUpWindow','height=400,width=600,left=10,top=10,,scrollbars=yes,menubar=no'); return false;"

2
@ wong2 Potrebbe voler cambiare la risposta a questa. Quello attualmente selezionato è troppo prolisso per essere efficiente.
CSS

54

In javascript puoi fare:

window.open(url, "_blank");

29

L'aggiunta di target = "_ blank" dovrebbe farlo:

<a id="myLink" href="www.google.com" target="_blank">google</a>

3
Capisco, mi dispiace di essermi perso. Bene, potresti modellare il collegamento in modo che abbia l'aspetto di un pulsante. Se stai usando jQuery UI basta usare il pulsante per farlo.
Tim Büthe

1
Ottima soluzione per la stragrande maggioranza di noi che si diletta semplicemente nel web design! Grazie!
SMBiggs

1
+1 perché hai dato una buona soluzione a chi cerca una semplice risposta "link aperto in una nuova scheda", se non utilizza un pulsante.
user295583058

Esattamente quello che voglio. Grazie
Shahrukh Anwar

+1, se qualcosa apre una pagina in una nuova scheda, è logicamente un collegamento, quindi il <a>tag è appropriato. Gli stili dovrebbero essere usati per farlo sembrare un pulsante.
Kos

21

Puoi dimenticarti di usare JavaScript perché il browser controlla se si apre o meno in una nuova scheda. La tua migliore opzione è fare invece qualcosa di simile:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank">
    <input name="dynamicParam1" type="text"/>
    <input name="dynamicParam2" type="text" />
    <input type="submit" value="submit" />
</form>

Questo si aprirà sempre in una nuova scheda indipendentemente dal browser utilizzato da un client a causa target="_blank"dell'attributo.

Se tutto ciò di cui hai bisogno è reindirizzare senza parametri dinamici, puoi utilizzare un collegamento con l' target="_blank"attributo come suggerisce Tim Büthe.


1
Funziona come richiesto (testato su Chrome, Firefox, IE10) :)
Zeeshan

10

Utilizzare window.openinvece di window.locationper aprire una nuova finestra o scheda (a seconda delle impostazioni del browser).

Il tuo violino non funziona perché non ci sono buttonelementi da selezionare. Prova input[type=button]o dai il pulsante ide usa #buttonId.


10

Il mio metodo preferito ha il vantaggio di non includere JavaScript nel tuo markup:

CSS

a {
  color: inherit;
  text-decoration: none;
}

HTML

<a href="http://example.com" target="_blank"><input type="button" value="Link-button"></a>

Bene, immagino di avere un nuovo metodo preferito.
Halter

Penso che questo risponda alla domanda in modo più corretto. +1 :)
Pramesh Bajracharya

3

Apri in una nuova scheda utilizzando javascript

 <button onclick="window.open('https://www.our-url.com')" id="myButton" 
 class="btn request-callback" >Explore More  </button>

1

Ho appena usato target = "_ blank" sotto il tag form e ha funzionato bene con FF e Chrome dove si apre in un nuovo tag ma con IE si apre in una nuova finestra.


1
L'apertura di una scheda o di una finestra dipende dalle opzioni del browser dell'utente. Non conosco IE, ma nella maggior parte dei browser la pagina web non può scegliere se il collegamento si apre in una scheda o in una finestra, ma l'utente può configurarlo.
joeytwiddle

0

prova questo

<a id="link" href="www.gmail.com" target="_blank" >gmail</a>

-1

Prova questo HTML:

<input type="button" value="Button_name" onclick="window.open('LINKADDRESS')"/>

-5

Non puoi. Questo comportamento è disponibile solo per i plugin e può essere configurato solo dall'utente.


-5
<BUTTON NAME='my_button' VALUE=sequence_no TYPE='SUBMIT' style="background-color:transparent ; border:none; color:blue;" onclick="this.form.target='_blank';return true;"><u>open new page</u></BUTTON>

Questo pulsante avrà l'aspetto di un URL e può essere aperto in una nuova scheda.


è necessario aggiungere "modulo"
nerkn

Non è una buona idea (semanticamente parlando) avere un pulsante che si comporti come un collegamento. Utilizza invece il atag.
Henrique Schreiner

-6

USA questo codice

function openBackWindow(url,popName){
        var popupWindow = window.open(url,popName,'scrollbars=1,height=650,width=1050');
          if($.browser.msie){
            popupWindow.blur();
            window.focus();
        }else{
           blurPopunder();
        }
      };

    function blurPopunder() {
            var winBlankPopup = window.open("about:blank");
            if (winBlankPopup) {
                winBlankPopup.focus();
                winBlankPopup.close()
            }
    };

Funziona bene con Mozilla, IE e Chrome e meno della versione 22; ma non funziona in Opera e Safari.


2
Questa non è la risposta migliore! Solido -1.
Shougo Makishima

1
Utilizzare questo codice non è davvero una risposta e non hai alcuna motivazione dietro.
Edeph
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.