Linkuri cu jQuery
by Bogdan Constantinescu on September 19, 2008
Aseară a început o mică discuţie pe Twitter referitor la o problemă de validare în cazul linkurilor care conţin `target="_blank"`. Dicuţia a început de la întrebarea lui Radu Ceucă şi au fost sugerate câteva soluţii.
Prima dintre ele îi aparţine lui @extraordinaire care a propus clasicul `window.open`. Din păcate problema e că arată urâţel un onclick care conţine un `window.open` şi presupun că va fi tratat ca pop-up de majoritatea adblock-urilor. O altă soluţie primită am înţeles că a fost clasicul `rel="external"` tratat cu Javascript.
Eu vreau să vă arat cea mai simplă şi curată soluţie folosind jQuery. Respectând zicala jQuery, `let's write less and do more`
$(document).ready( function () { $("a[@rel*=external]").attr( { target: "_blank" }); } );
Ne mai rămâne doar să includem libraria jQuery şi să punem acest script între <head> şi </head> şi totul e gata. Orice link care va avea `rel="external"` va fi deschis într-o pagină nouă. Simplu şi curat!
Cu un pas mai aproape de `Javascript Rockstar`
2 comments
Unul dintre argumentele mele la solutia propusa (cea cu jQuery): ce faci cu linkurile care nu sunt external? Adica linkurile care nu duc la un site diferit ci la pagini interne.
by Andrei Serdeliuc on September 25, 2008 at 6:27 pm. #
Avand in vedere ca `relationship type`-urile nu sunt stricte si definite le poti atribui un `rel=”internal”` sau un `rel=”child”` sau cum vrei sa-l numesti. Ramane doar sa modifici scriptul sa faca acelasi lucru cu respectivele linkuri care au relationship-ul `internal` sa presupunem
In prima instanta nu am inteles care era argumentul tau: cum modifici bucatica de jQuery sa modifice atributul mi s-a parut destul de evident selectorul; iar daca te refereai ce relationship ar trebui sa aiba [cum am presupus eu], cam asta ar fi parerea mea
by Bogdan on September 25, 2008 at 10:03 pm. #