פתח קישור בחלון חדש שתואם לתקן XHTML Strict

כן, כל מפתח מכיר את target=_blank. אך הוא אינו עובר את בדיקת הוולדיציה של תקן XHTML Strict. במאמר זה מוצג הפתרוןץ

מי שכותב בהתאם לתקן XHTML, בוודאי יודע ש-XHTML Strict אוס�� על target="_blank", השיטה המוכרת והיעילה לפתיחת קישור בחלון חדש. למרות שג'ייקוב נילסן כלל את פתיחת חלון חדש בלחיצה על קישור חיצוני כטעות שימושית נפוצה ומעצבנת, מהנסיון שלי הרבה מאד משתמשים שלוחצים על קישור חדש לא רוצים שהוא ייפתח בחלון המקורי, במיוחד אם מדובר בקישורים בתוך מאמרים ארוכים.

כיוון שיש מחלוקות, אנשי W3C נקטו עמדה וקבעו את סוף עידן ה-target=_lank. מי שמשתמש בתגית זו יודע שהוא ייכשל במבחן הוולידיות של ה-W3C. אנשי ה-W3C קבעו שהתגית שתחליף את ה-target=_blank היא rel=external אך למרבה הצער לתגית אין אותה פונקציונליות שיש ל target. כשאני מכליל rel=external בקישור שום דפדפן לא יפתח חלון חדש.

מה לעשות שיש עדיין צורך ודרישה לפתיחת חלון חדש בלחיצה על קישור?

הפתרון הוא די אלגנטי, הכניסו את ה-rel=external והפעילו את קוד ה-JavaScript הלא פולשני הבא בתוך ה-Head:


function newWindowLinks() 
{
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors .length; i++) 
	{
		var anchor = anchors[i];
		if (
			anchor.getAttribute("href") && ( 
			anchor.getAttribute("rel") == "external" || 
			anchor.getAttribute("rel") == "external nofollow" || 
			anchor.getAttribute("rel") == "nofollow external" )
		)
		anchor.target = "_blank";
	}
}
window.onload = function() {
	newWindowLinks();
}

הקוד הזה הוא לא מאד אלגנטי ולא מאד נכון מבחינת קונספציה, אבל הוא עובד. יום יבוא ואכתוב קוד שלא יחליף את ה-rel=external ל-target אלא פשוט יתן את הפונקציונליות של פתיחת חלון לקישורים עם rel=external.

פוסטים נוספים שכדאי לקרוא

בינה מלאכותית

מה זה Agentic AI או AI Agents

הסבר מקיף המיועד למתכנתים על מה זה סוכני AI ודוגמה שכל אחד יכול להבין.

בינה מלאכותית

זיהוי אנומליות עם tflite

איך משתמשים במידע מחיישנים של IoT ובונים איתו מודל tflite. דרך ההבנה הזו נלמד על למידת מכונה.

רספברי פיי

התקנת OpenCanary על רספברי פיי

מה זה OpenCanary ואיך אפשר להתקין אותה על רספברי פיי ולשדרג את אבטחת הרשת הביתית או המשרדית.

גלילה לראש העמוד