web-dev-qa-db-fra.com

Comment ouvrir une URL externe dans un nouvel onglet?

Lorsque j'essaie de mettre un lien comme <a href="http://www.example.com/" target="_blank"> sur le chemin du lien, j'obtiens le message d'erreur suivant:

Le chemin '//www.example.com/ "target =" _ blank ">' est soit invalide, soit vous n'y avez pas accès.

Existe-t-il un moyen d'ouvrir l'URL externe dans un nouvel onglet?

5
jone

Si vous pouvez cibler votre balise de menu avec jquery en utilisant son ID, vous pouvez mettre quelque chose comme ça dans un fichier JS que vous ajouterez dans votre thème via your_theme.info

Drupal.behaviors.externalMenu = function(context, settings) {
    $('#menu_id').attr('target', '_blank');
};

Ou vous pouvez utiliser le module Attributs de men .

12
tostinni

Pas par élément de menu. Cependant, le projet Liens externes permet d'ouvrir tous les liens externes dans une nouvelle fenêtre et les indique comme tels avec une icône.

3
Berdir

Le problème est que vous entrez <a href="http://www.example.com/" target="_blank">, lorsque Drupal n'attend que le lien (http://www.example.com, dans ton cas).

Si vous entrez http://www.example.com, Drupal remarquerait que c'est un lien externe, et il vous permettra de l'utiliser.
J'ai essayé d'ajouter un lien vers drupal.org, et comme vous pouvez le voir, Drupal l'a accepté (c'est le lien affiché comme "Drupal")).

screenshot

Pour savoir comment ouvrir le lien dans un nouvel onglet de navigateur, les autres réponses expliquent déjà comment procéder.

1
kiamlaluno

Je viens de recevoir cette réponse du conseil d'administration qui m'a été d'une grande aide, cela peut aussi fonctionner pour vous:

(function($){
  $(document).ready(function(){
    $('.page-node-166 a').attr('target', '_blank');
  });
})(jQuery);

dans mon cas, j'ai référencé la classe de page, puis le 'a' et cela a ouvert les liens sur cette page dans une nouvelle fenêtre. Je vais faire un peu plus de chaînage de sélecteur pour mieux identifier le menu spécifique dans la barre latérale.

0
user1176783

Si vous devez ouvrir tous les liens externes dans une nouvelle fenêtre, vous pouvez réécrire les liens de thème dans votre thème actuel, sinon utiliser le module d'attributs de menu comme indiqué ci-dessus.

function yourtheme_name_link($variables) {
  // Add target blank to all external links.
  if (url_is_external($variables['path'])) {
    $variables['options']['attributes']['target'] = '_blank';
  }
  return '<a href="' . check_plain(url($variables['path'], $variables['options'])) . '"' . drupal_attributes($variables['options']['attributes']) . '>' . ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>';
}
0
Bogdan Tur

Il y a un projet appelé " Menu Target " qui vous permet de faire exactement cela. Peut-être que cela aide ceux qui n'ont besoin que de liens de menu individuels à s'ouvrir dans un nouveau navigateur.

0
hobbes_VT