Ajouter une fonction onclick pour accéder à l'url en JavaScript?

100

J'utilise ce petit JavaScript sophistiqué pour mettre en évidence un champ lorsque l'utilisateur le survole. Pouvez-vous me dire s'il existe un moyen d'ajouter une onclickfonction qui agira comme un lien et ira vers une 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>
John Taylor
la source
Comment puis-je obtenir la valeur de l'url, s'agit-il d'un lien dans l'une des cellules du tableau ou est-ce qu'ils vont tous à la même URL
Renon Stewart
2
Vous avez un identifiant plutôt étrange ici '# read_message.php'?
Alex Gill

Réponses:

168

Essayer

 window.location = url;

Utiliser aussi

 window.open(url);

si vous souhaitez ouvrir dans une nouvelle fenêtre.

Rick Donohoe
la source
129

Utilisez simplement ceci

onclick="location.href='pageurl.html';"
Aamir Shahzad
la source
9
Cela ouvre le lien dans la même fenêtre, tandis que la réponse acceptée s'ouvre dans une nouvelle fenêtre. Je préfère l'approche de cette réponse
Hamman Samuel
33

Dans jquery pour envoyer un utilisateur vers une URL différente, vous pouvez le faire comme ceci:

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

cette méthode fonctionnera aussi, mais ce qui précède est la nouvelle façon la plus correcte de le faire ces jours-ci

$("a#thing_to_click").click(function(e){
         e.preventDefault();
         window.location = "http://www.google.com/";    
});
azzy81
la source
11
function URL() {
    location.href = 'http://your.url.here';
}
TWR Cole
la source
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 })'" />
Moji
la source
6

Si vous souhaitez ouvrir le lien dans un nouvel onglet, vous pouvez:

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

Si vous avez affaire à une <a>balise et que vous souhaitez interrompre le passage à la valeur par défaut, hrefvous devez utiliser à la thisplace.

Accédez à l'url par défaut (yahoo):

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

Accédez à la nouvelle URL (google) onclick:

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

En utilisant, thisvous interrompez l' onclickévénement actuel du navigateur et changez hrefavant de continuer au comportement par défaut de<a href='...

Darvydas Šilkus
la source
Salut @Darvydas, le code ci-dessus fonctionne comme prévu mais comment attendre le chargement de la page pour effectuer un autre événement sur l'URL nouvellement chargée.?
FayazMd
@FayazMd ne sais pas ce que vous essayez de faire? Habituellement, si c'est du JavaScript dans le DOM (actuellement dans l'élément du DOM a) en tant que page Web, vous ne pouvez pas contrôler le comportement de JS sur la page suivante (où vous redirigez la page du navigateur). Lorsque l'utilisateur quitte la page, c'est terminé. À moins que vous ne contrôliez également la deuxième page et que vous puissiez écouter le chargement de la page pour chaque utilisateur et vérifier document.referrersi c'est la bonne personne. En outre, cela peut être une autre histoire si vous utilisez quelque chose comme une extension / module complémentaire pour le navigateur qui peut écouter les modifications d'URL de page.
Darvydas Šilkus
Salut @Darvydas, merci pour votre réponse. Je veux essayer comme suit. dans la console du navigateur, l'utilisation de javascript avec une fonction auto-exécutable peut être 1) Je veux charger l'url de l'un de mes sites Web et 2) je veux attendre qu'il se charge complètement 3) pour que cette page Web ait une table à partir de laquelle je dois extraire toutes les lignes. Je peux effectuer l'étape 1 et si je suis sur un site Web déjà chargé, dans la console, je suis capable d'extraire des lignes de table (en code javascript). Mais, lorsque j'essaie d'écrire du code séquentiellement pour les étapes ci-dessus, échoue à l'étape 2.
FayazMd
2

Je ne suis pas tout à fait sûr de comprendre la question, mais voulez-vous dire quelque chose comme ça?

$('#something').click(function() { 
    document.location = 'http://somewhere.com/';
} );
Nigel
la source
oui, fondamentalement, le javascript est configuré pour mettre en évidence les champs de la table lorsqu'un utilisateur fait défiler / survole le contenu / les informations de la table. Je voudrais donner l'impression que le champ en surbrillance est cliquable afin qu'ils soient liés à une page. si cela a plus de sens. désolé si ce n'est pas le cas.
John Taylor
résolu. juste adapté légèrement votre code au lieu d'utiliser # i mis en tr pour représenter la table et cela a fonctionné. merci
John Taylor
0

essayer

location = url;

Kamil Kiełczewski
la source