טעינה של קובץ Javascript רק לאקספלורר

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

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

דוגמה לטעינת קובץ  Javascript חיצוני רק באינטרנט אקספלורר

הדרךהמומלצת לטעינת קובץ Javascript חיצוני היא על ידי שימוש בתג <script>. בדרך כלל יקנן תג זה בתוך התג <head>. להלן דוגמה לשימוש בתג <script> לצורך טעינת קובץ Javascript חיצוני:

<head>
    <script src="myScript.js"></script>
</head>

בדוגמה שלמעלה ייטען קובץ ה - Javascript בכל הדפדפנים. בדוגמה הבאה נטען את הקובץ רק עבור דפדפן מסוג אינטרנט אקספלוררץ נעשה זאת  באמצעות שימוש בתגי ההערה ב - HTML:

<!--[if IE]>
    <script src="Explorer.js"></script>
<![endif]-->

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

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

<!--[if IE 9]>
    <script src="Explorer.js"></script>
<![endif]-->
9

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

טעינת קובץ Javascript חיצוני בכל הדפדפנים מלבד באינטרנט אקספלורר

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

<!--[if !IE ]<!-->
 <script src="General.js"></script>
<!-- [endif] -->

כדי לטעון את קובץ ה - Javascript החיצוני בכל הדפדפנים מלבד אקספלורר הוספנו בתנאי שלנו סימן קריאה לפני האותיות IE . פירושו של סימן זה הוא שלילה. כלומר כל מה שהוא לא אינטרנט אקספלורר. כמו כן, את התנאי יש להכניס לתוך תווי הערה, אולם בניגוד לדוגמאות הקודמות אסור לתג <script> להיות בתוך הערה כדי שהדפדפנים האחרים לא יתעלמו ממנו. את סיום התנאי יש גם כן להכניס לתוך הערה.

סיכום

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

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


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש