פתרון לבעיית אורך Select באינטרנט אקספלורר 6

פתרון מבוסס jQuery לבעיה ב-select בדפדפן אינטרנט אקספלורר 6

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

באינטרנט אקספלורר 6, אם נלחץ על ה-select, הוא יחתוך את הטקסט שיש באפשרויות. השוו לכל דפדפן נורמלי אחר…

דרך פשוטה היא לשנות באמצעות JavaScript את הרוחב של שדה ה-select ברגע הלחיצה ולהחזיר את הרוחב המקורי לאחר הבחירה. הבעיה היא שברוב האתרים יש אפשרות שברגע שהרוחב של שדה ה-select ישתנה, כל ה-Layout יהרס. בנוסף, מסתבר שבאינטרנט אקספלורר, כאשר אנו לוחצים על ה-select, מתקיים גם אירוע בחירה ולפיכך קשה גם לבצע toggle נורמלי.

הפתרון – שינוי רוחב ה-select בד בבד עם מתן תגיות CSS שיגרמו ל-select הארור לרחף. בנוסף יצירת toggle עם שלושה מצבים שאחד מהם הוא null.

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

הפתרון מבוסס על jQuery ויש בו חסרון אחד – הוא לא עובד כל עוד הדף לא נטען לחלוטין ואירוע ה-ready מתחיל לעבוד. הנה קוד המקור:


<p><script type="text/javascript"> 
$(document).ready(function() {
	$('#myselect').toggle(
		function() {
			if (navigator.appName == 'Microsoft Internet Explorer')
			$('#myselect').css({'position' : 'absolute' , 'z-index' : '9999', 'width' : 'auto'});
		},
		function() {
		},
		function() {
			if (navigator.appName == 'Microsoft Internet Explorer')
			$('#myselect').css({'position' : '' , 'z-index' : '', 'width' : ''});
		}
	)
 });
</script></p> 

<select id='myselect' style="width: 100px;">
<option>אפשרות ארוכה ונחמדה, ארוכה ונחמדה</option>
<option>עוד אפשרות ארוכה ונחמדה, ארוכה ונחמדה</option>
<option>והנה עוד אפשרות ארוכה ונחמדה, ארוכה ונחמדה</option>
</select>

אל תשכחו כמובן לכלול הפניה לקוד ספרית ה-jQuery לפני יישום הפתרון הזה.

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

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

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

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

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

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

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

Safeguards על מודל שפה גדול (LLM)

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

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