17-11-2005, 13:29
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
target = blank ו-xhtml
על התג a ו-targeting בשימוש xhtml
תחת הגדרת xhtml בוטל השימוש במאפיין target לתג a.
אם נהייה יותר ספציפיים, התג לא קיים בתצורת strict של xhtml.
התג target מוגדר ע"י תקן xhtml לכיוון הקישור למסגרת מסויימת. לכן הוא נמצא
בתקן xhtml frameset וכן בתקן הוותרני מעט transitional.
אם אתם משתמשים בדפים שלכם באחת משתי גרסאות ה-xhtml האחרונות, הדפים
יעברו אישור של w3c (ואלידציה) - אך אם אתם משתמשים בגרסת ה-strict ואתם
מעוניינים לספק קישורים לדפים נפתחים, תאלצו להשתמש ב-javascript לצורך זה.
איך אני פותח דף חדש באמצעות קישור?
נתון לי הקישור הבא:
קוד PHP:
<a href="http://www.fresh.co.il"> Fresh </a>
ע"י הוספת פקודת javascript:
קוד PHP:
<a href="http://www.fresh.co.il" onclick="window.open(this.href); return false;"> Fresh </a>
( שימו לב שהפונקציה מחזירה false וזה במטרה שהקישור עצמו לא יקח אותנו לאתר פרש
בדף בו אנו נמצאים.
אבל אם יש לי מערכת שמייצרת המון קישורים? או דפים ממש גדולים?
איך פותרים את הבעייה עבור כל הקישורים שלי?
פתרון:
עבור כל תג, נוסיף מאפיין (לדוגמה, המאפיין החוקי ב-xhtml ששמו rel).
יותר נכון נחליף את כל התגים target ב-rel.
לדוגמה:
קוד PHP:
<a href="http://www.fresh.co.il" rel="blank_window">
במקום blank_window, כמובן שניתן לכתוב כל דבר שבא לנו, שיזהה את הקישורים
הפותחים דפים חדשים.
לאחר שכל התגים במבנה זה, כל שנותר לנו הוא להוסיף את הפונקציה הבאה,
ולא לשכוח להפעיל אותה בסיום הדף.
קחו שתי שניות לבחון את הפונקציה, היא מאוד פשוטה:
קוד PHP:
function TargetBlankLinks() { if (!document.getElementsByTagName) return; var a = document.getElementsByTagName("a"); for (var i=0; i<a.length; i++) { if (a[i].getAttribute("href") && a[i].getAttribute("rel") == "blank_window") a[i].target = "_blank"; } }
פונקציה זו, תדאג להוסיף לכל תגי הקישור המסומנים שלנו, את המאפיין target->blank
ומסמך זה יעבור strict xhtml validation.
בהצלחה,
נערך לאחרונה ע"י fat fish בתאריך 17-11-2005 בשעה 13:35.
|