Aggiungendo una funzione onclick per andare all'URL in JavaScript?


100

Sto usando questo piccolo JavaScript fantasia per evidenziare un campo mentre l'utente ci passa sopra. Potresti dirmi se c'è un modo per aggiungere una onclickfunzione che fungerà da collegamento e andrà a un URL?

<script>
         $(function() {
            $('tr').hover(function() {
                $(this).css('background-color', '#eee');
                $(this).contents('td').css({'border': '0px solid red', 'border-left': 'none', 'border-right': 'none'});
                $(this).contents('td:first').css('border-left', '0px solid red');
                $(this).contents('td:last').css('border-right', '0px solid red');
            },
            function() {
                $(this).css('background-color', '#FFFFFF');
                $(this).contents('td').css('border', 'none');
                $('a#read_message.php').click(function(){ URL(); });
            });
        });
        </script>

Come ottengo il valore dell'URL, è un collegamento in una delle celle della tabella o vanno tutti allo stesso URL
Renon Stewart

2
Hai un id piuttosto strano lì '# read_message.php'?
Alex Gill

Risposte:


168

Provare

 window.location = url;

Usa anche

 window.open(url);

se vuoi aprire in una nuova finestra.


129

Usa semplicemente questo

onclick="location.href='pageurl.html';"

9
Si apre il collegamento all'interno della stessa finestra, mentre la risposta accettata si apre in una nuova finestra. Preferisco l'approccio di questa risposta
Hamman Samuel

33

In jquery per inviare un utente a un URL diverso puoi farlo in questo modo:

$("a#thing_to_click").on('click', function(){
     window.location = "http://www.google.com/";    
});

anche in questo modo funzionerà, ma quello sopra è il modo più nuovo e corretto per farlo in questi giorni

$("a#thing_to_click").click(function(e){
         e.preventDefault();
         window.location = "http://www.google.com/";    
});

11
function URL() {
    location.href = 'http://your.url.here';
}

8

HTML

<input type="button" value="My Button" 
onclick="location.href = 'https://myurl'" />

MVC

<input type="button" value="My Button" 
onclick="location.href='@Url.Action("MyAction", "MyController", new { id = 1 })'" />

6

Se desideri aprire il link in una nuova scheda, puoi:

$("a#thing_to_click").on('click',function(){
    window.open('https://yoururl.com', '_blank');
});

3

Nel caso in cui tu abbia a che fare con il <a>tag e desideri interrompere il passaggio al valore predefinito href, dovresti thisinvece usare .

Vai all'URL predefinito (yahoo):

<a href="https://yahoo.com" onclick="location.href='https://google.com';"> 

Vai al nuovo URL (google) onclick:

<a href="https://yahoo.com" onclick="this.href='https://google.com';">

Utilizzando thissi interrompe l' onclickevento corrente del browser e si modifica hrefprima di continuare con il comportamento predefinito di<a href='...


Ciao @ Darvydas, il codice sopra funziona come previsto, ma come aspettare fino al caricamento della pagina per eseguire un altro evento sull'URL appena caricato.?
FayazMd

@FayazMd non sei sicuro di cosa stai cercando di fare? Di solito se è JavaScript all'interno del DOM (attualmente all'interno dell'elemento DOM a) come pagina web non puoi controllare il comportamento di JS nella pagina successiva (dove stai reindirizzando la pagina del browser). Quando l'utente lascia la pagina è fatto. A meno che tu non controlli anche la seconda pagina e potresti ascoltare il caricamento della pagina per ogni utente e controllare document.referrerse è la persona giusta. Inoltre, potrebbe essere un'altra storia se stai usando qualcosa come un'estensione / componente aggiuntivo per il browser in grado di ascoltare le modifiche all'URL della pagina.
Darvydas Šilkus,

Ciao @ Darvydas, grazie per la tua risposta. Voglio provare come segue. nella console del browser, l'utilizzo di javascript con funzione di autoesecuzione potrebbe essere 1) voglio caricare l'URL di uno dei miei siti web e 2) voglio aspettare fino a quando non viene caricato completamente 3) in modo che, quella pagina web abbia una tabella da cui devo estrai tutte le righe. Posso eseguire il passaggio 1 e se sono su un sito Web già caricato, nella console sono in grado di estrarre le righe della tabella (in codice javascript). Ma, quando provo a scrivere codice in sequenza per i passaggi precedenti, non
riesco

2

Non sono completamente sicuro di aver capito la domanda, ma intendi qualcosa del genere?

$('#something').click(function() { 
    document.location = 'http://somewhere.com/';
} );

sì, fondamentalmente il javascript è impostato per evidenziare i campi della tabella mentre un utente scorre / passa il mouse sopra il contenuto / le informazioni della tabella. vorrei far sembrare che il campo evidenziato sia cliccabile in modo che siano collegati a una pagina. se questo ha più senso. scusa se non lo fa.
John Taylor

risolto. ho appena adattato leggermente il codice invece di usare # ho inserito tr per rappresentare la tabella e ha funzionato. grazie
John Taylor

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.