في HTML 4.0 Strict وXHTML 1.0 STRICT، لا يُسمح باستخدام السمة الهدف في العلامة <a>، وهو أمر محبط لمصممي الويب، ولا يزال مسموحًا به في المواصفات الانتقالية، ولكن من خلال طرق معينة، قمنا بذلك يمكن حل المشكلة.
تمت إزالة السمة الهدف من مواصفات HTML4.0 ولكنها أضافت سمة أخرى: rel. يتم استخدام هذه السمة لتحديد العلاقة بين المستند الذي يحتوي على الرابط والمستند المرتبط، ويتم تحديد قيمة السمة الخاصة به في المواصفات :التالي، السابق، الفصل، القسم)، يتم استخدام معظم هذه السمات لتحديد العلاقة بين الأجزاء الصغيرة في مستند كبير، في الواقع، تسمح المواصفات للمطورين باستخدام قيم السمات غير القياسية بحرية للقيام بعمل محدد طلب.
هنا، نستخدم قيمة خارجية مخصصة للسمة rel لوضع علامة على الرابط لفتح نافذة جديدة.
رمز الارتباط الذي لا يتوافق مع أحدث معايير الويب:
<a href=document.html target=_blank>رابط خارجي</a>
استخدم السمة rel:
<a href=document.html rel=external>رابط خارجي</a>
الآن بعد أن أنشأنا رابطًا لنافذة جديدة تتوافق مع معايير الويب، نحتاج أيضًا إلى استخدام JavaScript لتنفيذ نافذة جديدة. ما يحتاج البرنامج النصي إلى فعله هو العثور على كل العناصر الموجودة في المستند التي حددناها على أنها rel=external عندما يتم تحميل صفحة الويب.
أولا علينا أن نحدد المتصفح.
إذا عاد (!document.getElementsByTagName) ؛
تعد getElementsByTagName طريقة سهلة الاستخدام في معيار DOM1، وهي مدعومة من قبل معظم المتصفحات الآن نظرًا لأن بعض المتصفحات القديمة مثل Netscape 4 وIE4 لا تدعم DOM1، فيجب علينا استبعادها من خلال تحديد ما إذا كانت هذه الطريقة موجودة أم لا. هذه الإصدارات القديمة من المتصفحات.
بعد ذلك، نحصل على جميع علامات <a> الموجودة في المستند من خلال طريقة getElementsByTagName:
مرساة var = document.getElementsByTagName(a);
يتم تعيين المراسي كمصفوفة تحتوي على كل علامة <a> الآن يجب علينا المرور عبر كل علامة <a> وتعديلها:
لـ (var i=0; i < مرساة.طول; i++) {
مرساة فار = المراسي؛
ابحث عن العلامة <a> لتنفيذ نافذة جديدة
إذا (anchor.getAttribute(href) &&
مرساة.getAttribute(rel) == خارجي)
بعد ذلك، قم بإنشاء هدف قيمة السمة وقم بتعيين القيمة _target:
مرساة.target = _blank;
الكود الكامل:
--------------------------
وظيفة الروابط الخارجية () {
إذا عاد (!document.getElementsByTagName) ؛
مرساة var = document.getElementsByTagName(a);
لـ (var i=0; i<anchors.length; i++) {
مرساة فار = المراسي؛
إذا (anchor.getAttribute(href) &&
مرساة.getAttribute(rel) == خارجي)
مرساة.target = _blank;
}
}
window.onload = ExternalLinks;