Media Player, Firefox ובאג מעצבן.

20 באוקטובר 2007

2 תגובות

לפני כמה חודשים (או יותר, לא זוכר כבר), port 25 של Microsoft העלו Plug In של Windows Media עבור Firefox. בתור מי שמפעיל אתר חדשות טלוויזיה על בסיס שרת Windows Media, קפצתי על המציאה וחיש קל, התחלתי לשחק עם הרכיב החדש.


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


כשהגעתי לשלב הפיתוח, הסתבר שהוא לא מגיב לפקודה mp.controls.Play() כמו ב-IE. חמש דקות נוספות של עבודה הראו כי לפקודה mp.controls.play() הוא דווקא כן מגיב, אבל IE דווקא לא.


עוד חצי שעה של נסיונות העלו את התוצאה העקומה הבאה, שדווקא עובדת כהלכה:

mp = document.getElementById('Player');
try {
mp.controls.Play()
}

catch(e) {
mp.controls.play();
}


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

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. Doron Ben-David20 באוקטובר 2007 ב 22:59

    המממ… חשבת לנסות לזהות את סוג הדפדפן, ולכתוב את הקוד בהתאם?

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

    לדוגמא:
    if(navigator.userAgent.indexOf("Firefox")!=-1){
    var versionindex=navigator.userAgent.indexOf("Firefox")+8
    if (parseInt(navigator.userAgent.charAt(versionindex))>=1)
    alert("You are using Firefox 1.x or above")
    }

    הגב
  2. Moshe L21 באוקטובר 2007 ב 0:38

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

    ואם כבר אז כבר – זיהוי אם קיים ה-plugin המתאים:

    function CheckFFWMP() {
    var is_WMP;
    for ( var i in navigator.plugins ) {
    var n = navigator.plugins[i].name; //alert(n);
    if ( n != null && n.indexOf("Windows Media") >= 0 && n.indexOf("Microsoft") == 0 )
    return true;
    }
    return false;
    }

    הגב