باز شدن خودکار لینکهای خارجی در پنجره جدید توسط JavaScript
۲ تير ۱۳۸۹ ساعت ۱۱:۰۰
طراحی وب
تابع JavaScript برای کنترل لینکهای External
یکی از تمایلات وبلاگنویسها اینه که لینکهای خارجی، در یک تب یا پنجره جدید باز بشه. شاید این تمایل برای تو هم مثل من یکم دیر بوجود اومده باشه و پیدا کردن و اصلاح لینکها ممکن نباشه.
خوب علم پیشرفت کرده. من این کد کوچیک رو واسه همین وبلاگ نوشتم. شاید به درد تو هم بخوره:
var hostname = window.location.hostname;
var anchors = document.getElementsByTagName("a");
for(var i=0; i<anchors.length; i++) {
if( anchors[i].href
&& anchors[i].href.indexOf(hostname) == -1
&& !anchors[i].target
) {
anchors[i].target = "_blank";
}
}
از اونجایی که کار نصفه و نیمه جواب نمیده و چون این وبلاگ بخش MooTools و jQuery هم داره. این کد رو با این دو فریم ورک هم می نویسم محض نمونه و مثال از این فریم ورکها:
انتخابگر هر دوشون مثل هم هست و به شکل زیره:
var hostname = window.location.hostname; var selector = 'a[href]:not([href*='+hostname+']):not([target]';
-
MooTools:
$$(selector).set('target', '_blank'); -
jQuery:
$(selector).attr('target', '_blank');
من اینجا یکم محدودیت عرضی دارم که طول خطوط کدها طولانی نشه وگرنه این کدها رو میشه تو یک خط اجرا کرد بجای اینکه هر تیکه اش رو تو یه متغیر بریزیم.


Google Chrome
تو چی فکر می کنی؟