web-dev-qa-db-fra.com

<a> lien ne fonctionne pas en cliquant, fonctionne uniquement avec la commande "Ouvrir le lien dans un nouvel onglet"

Je rencontre cette situation intéressante:

<ul>
    @foreach (var item in Model)
    {
      <li>
        <a href="@Url.Action("Details", "Product", new { id = item.Id })" >@item.Name</a>
      </li>
    }
</ul>

Lorsque je clique sur un lien, rien ne se passe, la page Détails du produit ne s'ouvre pas. Mais je fais"Ouvrir le lien dans un nouvel onglet", alors il s'ouvre. Quelle peut être sa raison? 

12
Jhoon Bey

Vous avez du code javascript qui empêche l'action par défaut de la balise d'ancrage d'être exécutée. Vous pouvez consulter l'onglet Network dans FireBug ou Chrome DevTools pour voir si une requête AJAX est en cours lorsque vous cliquez sur le lien. Vous pouvez essayer d'exclure les fichiers javascript jusqu'à ce que vous trouviez celui qui le fait.

31
Darin Dimitrov

Peut-être avez-vous empêché l'événement de redirection d'une balise avec JavaScript.

Par exemple:

$(document).on('click', 'a.thatTag', function (e) {
   // ...
   e.preventDefault();
});

.preventDefault() empêche la redirection.

5
Maq

Cela peut se produire si l'adresse n'a pas le protocole de transfert dans l'attribut href. Un exemple serait de relier localhost en tant que <a href="localhost"></div> au lieu de <a href="http://localhost"></div>. Si cela est fait, vous verrez que Google Chrome donnera un statut annulé. Dans Safari, une boîte de dialogue vous demandant dans quelle application le lien doit être ouvert, le protocole de transfert étant inconnu. J'ai rencontré ce problème lors de la définition du lien avec $_SERVER['HTTP_Host'] en PHP.

Le point clé étant, assurez-vous de laisser le protocole de transfert devant le lien, que ce soit http://, https://, ftp:// ou quoi que ce soit d'autre.

1
djamahl

Essayez ce code ...

<a href="http://google.com/" onclick="location.replace('http://google.com/'),'_top'">Google</a>
1
Sujiraj R

Je sais que c’est une vieille question, mais comme vous venez tout juste d’avoir un problème similaire, il semble que le problème puisse être que votre requête soit bloquée par le navigateur. Cela peut arriver si vous êtes actuellement dans un environnement sécurisé (https) et que vous essayez de vous connecter à une ressource non sécurisée (http).

La nature de votre href n'est pas claire, mais assurez-vous qu'il s'agit de https (ou //) si votre environnement actuel est sécurisé.

0
Bangkokian