بالأمس قمت بتعديل صفحة EPG على مربع Set-Top وواجهت مشكلة صغيرة. عندما يقوم المستخدمون بشراء الألعاب ، يحتاج مربع الحوار تأكيد الشراء إلى الظهور. يجب أن يكون التركيز الافتراضي لمربع الحوار على زر "إلغاء". إنه متطلب بسيط للغاية ، ويمكن تحقيقه باستخدام طريقة Focus () JavaScript. أمثلة رمز بسيطة هي كما يلي:
document.getElementById ("إلغاء"). Focus ()ولكن الشيء الصعب هو أن مربع الإعداد هو حقا حفرة كبيرة. نظرًا لأنه متوافق مع جميع نماذج مربعات المجموعة الموجودة ، يجب تكييف 8 مربعات أعلى. ثم نشأت مشكلة! لا يمكن لمربع مجموعة من ZTE B600 تعيين التركيز على زر "إلغاء" على الإطلاق. ها هي حلولي:
أولاً ، أكد ما إذا كان مربع SET-TOP يدعم طريقة getElementByID () وما إذا كان قد حصل بنجاح على العنصر مع المعرف "إلغاء": طريقة الاختبار بسيطة للغاية. لقد كتبت مباشرة <p id = "test"> test </p> ، ثم حصلت على العنصر مع المعرف "اختبار" في نفس المكان ، وأجرى مستندًا بسيطًا للعملية.
أخيرًا ، استخدمت "Try ... Catch (E) ..." للقبض على سبب "Focus ()" فشل
Try () {<span style = "white-space: pre"> </span> document.getElementById ("cancel"). focus ()} catch (e) {<span style = "white-Space: pre"> </span> ALERT ( }لكنه غريب فقط! تُظهر نتائج الخطوتين أعلاه أن مربع Set-Top يدعم Focus () و GetElementById () ، لكنه لا يمكنه ضبط التركيز على مربع الحوار المنبثقة.
بعد أكثر من ساعة من النضال ، ظهر Big Boss أخيرًا ، وحل المشكلة بجملة بسيطة! من الممكن استدعاء Flur () بنشاط لإلغاء التركيز الأصلي!
document.getElementById ("شراء"). flur ()ثم تم حل المشكلة. لا بد لي من التعبير عن مشاعري! في عملية حل هذه المشكلة ، تكون أفكاري صحيحة تمامًا ، لكن من الواضح أن معرفتي ليست كافية. الفجوة بين المبرمجين العامين وكبار المبرمجين لا تتعلق فقط بحل المشكلات ، ولكن أيضًا حول الخبرة والمعرفة!