it-swarm.it

Come faccio ad aprire un URL esterno in una nuova scheda?

Quando provo a inserire un link come <a href="http://www.example.com/" target="_blank"> sul percorso del collegamento, viene visualizzato il seguente messaggio di errore:

Il percorso '//www.example.com/ "target =" _ blank ">' non è valido o non hai accesso ad esso.

C'è un modo per aprire l'URL esterno in una nuova scheda?

5
jone

Se puoi indirizzare il tuo tag di menu con jquery usando il suo ID, puoi inserire qualcosa del genere in un file JS che aggiungerai al tuo tema tramite your_theme.info

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

Oppure puoi usare il modulo Attributi men .

12
tostinni

Non per voce di menu. Tuttavia, il progetto Collegamenti esterni consente di aprire tutti i collegamenti esterni in una nuova finestra e li indica come tali con un'icona.

3
Berdir

Il problema è che stai inserendo <a href="http://www.example.com/" target="_blank">, quando Drupal si aspetta solo il link (http://www.example.com, nel tuo caso).

Se inserissi http://www.example.com, Drupal noterebbe che è un link esterno e ti permetterà di usarlo.
Ho provato ad aggiungere un link a drupal.org e, come puoi vedere, Drupal l'ha accettato (è il link mostrato come "Drupal").

screenshot

Per come aprire il collegamento in una nuova scheda del browser, le altre risposte spiegano già come farlo.

1
kiamlaluno

Ho appena ricevuto questa risposta dal consiglio che mi è stato di grande aiuto, potrebbe funzionare anche per te:

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

nel mio caso, ho fatto riferimento alla classe di pagina, quindi alla "a" e che ha aperto i collegamenti su quella pagina in una nuova finestra. Farò un po 'più di concatenamento dei selettori per poter individuare meglio il menu specifico nella barra laterale.

0
user1176783

Se è necessario aprire tutti i collegamenti esterni in una nuova finestra, è possibile riscrivere i collegamenti a tema nel tema corrente, se non utilizzare il modulo degli attributi di menu come indicato sopra.

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

C'è un progetto chiamato " Menu Target " che ti permette di fare proprio questo. Forse questo aiuta coloro che hanno solo bisogno di collegamenti a singoli menu per aprirsi in un nuovo browser.

0
hobbes_VT