הצטרפות לדואר חשמלי | הסרת מנוי מדואר חשמלי | שלח מכתב | דף ראשי

 

 

 

 

 

משהו רע קורה לקישורים של Ynet. סולמית אן שולתת!!1!

06/03/2004 |   גיליון מספר 45

halemo

 

 

בחודשים האחרונים מישהו עשה שיפוץ בקוד באתר ynet. קישורים בכתבות באתר ynet לא עובדים טוב, והמשתמש מקבל קישורים שגויים. המשתמש גם אינו יכול לדעת מה הוא הקישור שהוא עומד לללחוץ עליו, כי מישהו ניטרל את הצגת הקישור בתחתית חלון הדפדפן בשורת הסטטוס. מה קורה למתכנתים של ynet? ולמה העונש הזה מגיע לנו?

 

 

(הדברים נבדקו על דפדפן אינטרנט אקספלורר של מיקרוסופט. אתר ynet אינו פועל טוב בדפדפנים אחרים כמו מוזילה)

 

 

משהו רע עובר בימים אלו על אתר ynet. חלק מהקישורים המצורפים לכתבות אינו פועל טוב. הקישורים, שאמורים להיות כתובים היטב ובלחיצה עליהם להעביר את הגולש לאתר המקושר, לא עושים זאת היטב.

 

אף אחד כנראה לא התלונן עדיין, או שאף אחד לא לוחץ על הקישורים בכתבות של ynet, ואלה שכן עושים את זה, פשוט לא מדווחים לאתר החדשות על התקלה.

 

הנה למשל בכתבה הבאה על אדם שביים את מותו בפורום אופנועי שטח בתפוז

http://www.ynet.co.il/articles/0,7340,L-2884495,00.html

 

בכתבה, יש קישור לפורום אופנועי שטח באתר תפוז. זה הלינק כפי שהוא מופיע בכתבה:

http://www.tapuz.co.il/tapuzforum/main/anashim.asp%3Fid%3D363%20

 

 

לחיצה על הקישור בתוספת מקש shift כדי לגרום לקישור להיפתח בדף חדש (המשתמש לא סומך על האתר שהקישור ייפתח באמת בדף חדש), לא תוביל לפורום המדובר, ואתר תפוז יעביר אתכם לדף הראשי בגלל שמספר הפורום בעצם לא קיים. קישורים אחרים בכתבות אחרות, פשוט יציגו למשתמש את שגיאה 404 הידועה לשמצה, המבשרת כי הדף לא נמצא.

 

אז מה קורה כאן?

 

הקישור האמיתי לפורום אופנועי שטח בתפוז הוא הקישור הבא:

http://www.tapuz.co.il/tapuzforum/main/anashim.asp?id=363

 

הסרקיפט באתר ynet מתרגם חלק מהתווים המופיעים בקישור לתווים אחרים. הקידוד נקרא אסקייפ escape והוא נועד לתרגם תווים בתוך קוד ג'אווה סקריפט לקוד שלא יבלבל את הדפדפן. לרוב, מותרגמים סימנים כמו "סימן השווה" או "סימן השאלה" לערכיהם בערכים הקאדצימליים בתוספת "סימן האחוז".

 

אבל, ב Ynet יש כנראה באג שמתרגם צעד אחד יותר מדיי, וכך הוא הופך את סימן השאלה (?) לערכו המקודד "שלוש אף" ואת סימן השווה לערכו המקודד "שלוש די", שניהם בתוספת סימן האחוז המציין כי מדובר בערך הקסאדצימלי. בסוף הקישור שנתן ynet יש גם גם ערך מיותר שהוא "שתיים אפס" המציין את "סימן הרווח".

 

המספר 363 הוא מספר הפורום בתפוז ותוויו אינם מתורגמים, כי מספרים אינם סימנים שצריכים לעבור קידוד אסקייפ.

 

הפאשלה הקטנה הזו של ynet מופיעה בהרבה כתבות, מאמרים ובלוגים באתר, הנותנים קישור לאתר חיצוני ומופיעים בו סימני שווה, סימני שאלה, רווחים וסימני אחרים שאינם אלפא נומריים (אותיות וספרות).

 

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

 

מישהו באתר ynet החליט להיות חכם ייתר על המידה, ובקוד הדפים בכל כתבה, יש ניטרול של פעולות פשוטות של העכבר. כך למשל, אם עכבר עובר על קישור כל שהוא, מה שבעצם קורה הוא שמופיעים רצף הסימנים "סולמית אן" (#n), בתוספת כתובתה של הכתבה שכרגע קורא הגולש.

 

הקוד בכתבות באתר ynet קובע את הדברים הבאים, כאשר נלחץ על קישור עם העכבר בתוספת מקש shift:

 

 

<a class=bluelink

href="#n"

onClick='if(event.shiftKey)

{

window.open("http://www.tapuz.co.il/tapuzforum/main/anashim.asp%3Fid%3D363%20");

return false

}

else

{

if (!is_ie5) {

x=txt_link("external","http://www.tapuz.co.il/tapuzforum/main/anashim.asp%3Fid%3D363%20","

width=800, height=600,

toolbar=1, scrollbars=yes, status=1,

resizable=1, location=1, menubar=1, left=0, top=0")

}

else {

this.target="_Blank";

this.href="http://www.tapuz.co.il/tapuzforum/main/anashim.asp%3Fid%3D363%20"

}

}' oncontextmenu='this.href="http://www.tapuz.co.il/tapuzforum/main/anashim.asp%3Fid%3D363%20"'

ondeactivate='this.href="#n"'

onBlur='this.href="#n”>אופנועי שטח</a>

 

 

 

 

למי שלא מבין מה כתוב בקוד, אסביר שמדובר בגיבובי טקסט שלא היה מבייש אף מתכנת צעיר שלא מבין כלום מהחיים שלו. המתכנת של Ynet בודק האם המשתמש לוחץ על shift. אם הוא לוחץ על shift, אז המתכנת מעביר אותו לחלון דפדפן חדש עם הקישור הנלחץ. כמו כן הוא מנטרל בדפדפן את האפשרות לדעת מה הלינק כאשר עוברים עליו עם העכבר ללא לחיצה.

 

אבל אם המשתמש לא לחץ על מקש shift, אז המתכנת שוב פותח לו דף חדש, הפעם בעזרת פקודה אחרת. חלמאות תיכנותית במיטבה.

 

החלמאות התכנותית הזו בקשר לפתיחת דפים בחלון חדש, קיימת באתר Ynet מיומו הראשון. פעם, לא הייתם יכולים לפתוח קישור בחלון חדש עם מקש shift, מכיוון שהייתם מקבלים קישור שאינו http אלא פקודה בג'אווה סקריפט המורה לדפדפן לפתוח את הקישור. הפקודה התחילה במילים window.open  .

 

כל מה שהמתכנת של אתר Ynet היה צריך לעשות, זה פשוט להשתמש בג'אווה סקריפט בתבונה, ולפתוח למשתמש את הקישור בחלון החדש על ידי שימוש במאפיין שנקרא target. למאפיין זה יש להצמיד את הערך _blank (הקו התחתון צריך להופיע משמאל למילה בלנק. המילה blank חייבת להופיע כולה באותיות קטנות, על מנת לפתוח כל קישור בכתבה בדף חדש ולא על אותו דף).

 

הנה כך:

 

 

<a class=bluelink target=_blank

href=http://www.tapuz.co.il/tapuzforum/main/anashim.asp?id=363>

 

 

קל, קצר, פשוט. כתבות מרובות קישור באתר ynet יעלו הרבה יותר מהר, המתכנת ייחשב כבחור אלגנטי בעיני עמיתיו, ועם ישראל יהיה שמח וירווה נחת כי אתר Ynet סוף סוף ייתן לו להקליק על קישור כמו שצריך ולא כמו דביל. לפני הלחיצה על הקישור, אפשר יהיה לדעת באיזה קישור מדובר. כתובת הקישור תופיע בתחתית חלון הדפדפן כאשר נעבור עם העכבר מעל הקישור. המשתמש יקליק על הקישור רק אם ירצה ולא רק על מנת לדעת מה הוא הקישור.

 

ודבר נוסף:

מאז שהמתכנת של Ynet המציא את השיטה "הגאונית" ההיא למעלה, הרבה "סולמית אן" מופיעים באתרים הנותנים קישור לכתבה באתר ynet. הגיעה הזמן להפסיק את הפאדיחה הזו.

 

"סולמית אן" צריכה להפסיק לשלותת!!1!