في 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"
مرساة.هدف = "_فارغة"،
الكود الكامل:
وظيفة الروابط الخارجية () {
إذا عاد (!document.getElementsByTagName) ؛
مرساة var = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
مرساة فار = المراسي؛
إذا (anchor.getAttribute("href") &&
مرساة.getAttribute("rel") == "خارجي")
مرساة.تارجيت = "_فارغة";
}
}
window.onload = ExternalLinks;