איך להמנע מבושות כשאקספלורר משתדרג?

והפעם פוסט מיוחד למתכנתים שעובדים בממשלה ובמוסדות ממשלתיים.

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

בשלב זה, הישום תומך בדפדפן Internet Explorer בלבד!
בשלב זה, הישום תומך בדפדפן Internet Explorer בלבד!

אין לי כוח להכביר מילים על כך שממשלת ישראל מכריחה אותי בשנת 2014 להשתמש בדפדפן הזה. ואיזה סוג מתכנת אתה צריך להיות כדי לעשות browser detection ועוד להוסיף חטא על פשע ולהקפיץ alert (שנת 2014 להזכירכם) למשתמשים. בואו נעמיד פנים ששפכתי אש וגופרית במשך חצי עמוד ונמשיך הלאה.

חיטטתי במשך חצי שעה בתפריט ה'התחל' של החלונות כדי להעלות באוב את הדפדפן. ניערתי אותו מהאבק ונכנסתי בששון ובשמחה אל אתר רשות המיסים… מה רבה הפתעתי כאשר ראיתי את הדבר המופלא הבא:

הסבר טכני מפורט על הכנסת אתר רשות המיסים ל compatibility list.
הסבר טכני מפורט על הכנסת אתר רשות המיסים ל compatibility list.

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

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

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


if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
    var ieversion = new Number(RegExp.$1) // capture x.x portion and store as a number
    if (ieversion >= 10)
    window.open("../shaamtemplates/IE10modal.htm", "_blank", "height=700, width=1000 ,scrollbars=1");
    
}
else
    if(!!window.MSStream)
	window.open("../shaamtemplates/IE11modal.htm", "_blank", "height=700, width=1000 ,scrollbars=1");
    else
        alert("בשלב זה, היישום תומך בדפדפן Internet Explorer בלבד !");

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

א-מ-מ-ה? בהיי טק האמיתי, כאשר מתכנת נתקל בצורך להתאים את האפליקציה שעובדת רק עם אינטרנט אקספלורר 9 (למשל). הוא יודע שכל מה שצריך על מנת לגרום לאינטרנט אקספלורר 10 ו-11 לרנדר את האפליקציה כאינטרנט אקספלורר 9 זה להכניס ל-HTML את תגית המטא הזו:


<meta http-equiv="X-UA-Compatible" content="IE=9">

הכנסת הקוד שלעיל פשוט גורמת לכל אינטרנט אקספלורר מגרסה 10 ו-11 (וגם הבאות בעתיד הנראה לעין) להריץ את העמוד במוד תאימות לאחור. וכך פותרים בעיה ב-15 דקות + זמן ה-QA. זה הכל. אפשר אפילו להמנע מלהכניס את זה לקוד של האפליקציה שלנו ולגרום לשרת עצמו להחזיר header שיכלול את המידע הזה. ואז אפילו לא צריך לגרום למתכנת לעבוד 15 דקות אלא ל-SysAdmin.

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

אז מה הלקח?

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

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

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

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

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

מיקרו בקרים

הפעלת מסך oled קטנטן עם esp32

יצירת מערכת מולטימדיה שלמה בגודל של בול דואר עם מיקרובקר ובעלות של דולרים בודדים. וגם על הדרך נלמד על ת׳רדים

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

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