בעיית indexOf ו-Internet Explorer

שני פתרונות אלגנטיים לבעיית indexOf ואינטרנט אקספלורר.

אין כמו אינטרנט אקספלורר כדי לספק לכל מתכנת שהוא שלל של בעיות הזויות. מסתבר שהמתודה האולטרא שימושית indexOf שמשמשת אותנו למצוא טקסט מסוים במערך של JavaScript וזמינה החל מגרסת JavaScript 1.5 לא עובדת באינטרנט אקספלורר 6,7 וגם 8.

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

הנה הדוגמא:


arrOfNames = ["david", "moshe", "ran", "omri", "yael"];
$('#myButton6').click(function () {
result = jQuery.inArray("omri", arrOfNames);
alert("Omri is at "+result);
});

פתרון נוסף הוא להוסיף את ה-indexOf כ-prototype של מתודה לאובייקט מסוג Array:


if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}


הוספת הקוד לעיל ל-JavaScript לא מחייבת שימוש ב-jQuery כמובן ומוסיפה את ה-indexOf כמתודה חדשה למערך ומאפשרת להשתמש בה.

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

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

Agent skills

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

יסודות בתכנות

מבוא לאבטחת מידע: גוגל דורקינג

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

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