2009-06-09 5 views
1

Normalement, si je veux forcer un lien à ouvrir dans un nouvel onglet (ou fenêtre) lors de la publication sur mon blog, je dois soit utiliser le lien GUI et sélectionnez "ouvrir dans une nouvelle fenêtre", ou, puisque j'utilise le vue HTML par défaut, après avoir inséré un lien, ajoutez manuellement la « target = » partie de l'étiquette:Comment puis-je forcer l'ouverture automatique des liens dans une nouvelle fenêtre?

<a href="http://link.to/something.great" target="_blank">link text</a> 

y at-il un emplacement de plug-in ou d'un crochet, je peux utiliser pour insérer automatiquement l'attribut cible, ou suis-je coincé le faire manuellement?

EDIT: Je cherche spécifiquement un moyen de modifier le lien pendant que je le crée dans l'éditeur. Si ce n'est pas possible, alors peut-être un hack sur le processus de sauvegarde. Mais je ne veux pas d'un "hack" frontal, ce qui n'est pas forcément permanent.

+3

S'il vous plaît ne le faites pas. De nouvelles fenêtres inattendues sont au mieux agaçantes et confuses au pire. Voir aussi http://www.useit.com/alertbox/990530.html & http://diveintoaccessibility.org/day_16_not_opening_new_windows.html – Quentin

Répondre

1

Si vous utilisez jQuery 1.3+, vous pouvez facilement le faire avec la ligne suivante de JavaScript:

$("a:not([href^='http://your.website-url.here']").attr('target', '_blank'); 

ajouter ceci à l'événement load() de jQuery.

+0

C'est une bonne idée, mais je veux que la cible soit codée en dur. Donc, cela fonctionnerait, mais pas pour mes besoins. :) –

1

Une approche consiste à modifier votre fichier functions.php. See here for an example hook function. Un autre est de use jQuery.

+0

Cela fonctionnerait également, mais encore une fois, c'est un hack d'exécution, pas un hack "à la compilation" (par manque d'une meilleure expression). (Je ne me dérange pas un hack, mais pas ce genre.;) –

-2

Vous pouvez le faire assez facilement en utilisant javascript. Voulez-vous définir une cible sur tous les liens externes? Ou seulement ceux dans le corps du message?

De toute façon, voici le code jQuery pour le faire:

$(document).ready(function(){ 
    $("#postBody a").attr('target','_blank'); 
}); 

Supposant votre corps de poste se trouve dans un div avec l'ID "postBody".

Questions connexes