Hier, j'ai modifié la page EPG sur le décodeur et rencontré un petit problème. Lorsque les utilisateurs achètent des jeux, une boîte de dialogue de confirmation d'achat doit apparaître. Le foyer par défaut de la boîte de dialogue doit être sur le bouton "Annuler". C'est une exigence très simple, et elle peut être réalisée en utilisant la méthode focus () de JavaScript. Les exemples de code simples sont les suivants:
document.getElementById ("Annuler"). Focus ()Mais ce qui est difficile, c'est que le décodeur est vraiment une grosse fosse. Puisqu'il est compatible avec tous les modèles de décors existants, 8 décodeurs doivent être adaptés. Puis un problème s'est posé! Un décodeur de ZTE B600 ne peut pas du tout définir l'objectif sur le bouton Annuler. Voici mes solutions:
Tout d'abord, confirmez si le décodeur prend en charge la méthode GetElementById () et s'il a réussi à obtenir l'élément avec l'ID "Annuler": la méthode de test est très simple. J'ai directement écrit un autre <p id = "test"> test </p>, puis j'ai obtenu l'élément avec l'ID "Test" au même endroit, et j'ai effectué un document de fonctionnement simple.GetElementById ("test"). InnerHtml = "Bonjour"
Enfin, j'ai utilisé "Try ... Catch (e) ..." pour attraper la raison pour laquelle "focus ()" a échoué
try () {<span style = "white-space: pre"> </span> document.getElementById ("annuler"). focus ()} catch (e) {<span style = "white-space: pre"> </span> alert (e.name + ":" + e.what ()); }Mais c'est juste étrange! Les résultats des deux étapes ci-dessus montrent que le décodeur prend en charge Focus () et GetElementById (), mais il ne peut tout simplement pas définir la focalisation sur la boîte de dialogue contextuelle.
Après plus d'une heure de lutte, le grand patron est finalement apparu, et il a résolu le problème avec une simple phrase! Il est possible d'appeler activement Flur () d'annuler l'objectif d'origine!
document.getElementById ("achat"). Flur ()Ensuite, le problème a été résolu. Je dois exprimer mes sentiments! Dans le processus de résolution de ce problème, mes propres idées sont en fait assez correctes, mais mes connaissances ne sont évidemment pas suffisantes. L'écart entre les programmeurs généraux et les programmeurs seniors ne consiste pas seulement à résoudre des problèmes, mais aussi à l'expérience et aux connaissances!