Maison > interface Web > js tutoriel > le corps du texte

Solution à l'échec de JavaScript lors de l'utilisation de focus() pour définir les astuces focus_javascript

WBOY
Libérer: 2016-05-16 16:37:24
original
1987 Les gens l'ont consulté

Hier lorsque j'ai modifié la page EPG du décodeur, j'ai rencontré un petit problème. Lorsque les utilisateurs achètent un jeu, une boîte de dialogue de confirmation d'achat doit apparaître. Le focus par défaut de la boîte de dialogue doit rester sur le bouton "Annuler". Une exigence très simple peut être satisfaite en utilisant la méthode focus() de JavaScript. Un exemple de code simple est le suivant :

document.getElementById("cancel").focus()
Copier après la connexion

Mais ce qui est triste, c'est que le décodeur est vraiment un gros gouffre. Puisqu’il doit être compatible avec tous les modèles de décodeurs existants, 8 décodeurs doivent être adaptés. Puis quelque chose s’est mal passé ! Un décodeur ZTE B600 ne peut pas du tout définir le focus sur le bouton d'annulation. Voici ma solution :

Vérifiez d'abord si le décodeur prend en charge la méthode getElementById() et si l'élément avec l'ID "cancel" a été obtenu avec succès : la méthode de test est très simple, il suffit d'écrire un autre

test Enfin, "try...catch(e)..." a été utilisé pour capturer la raison pour laquelle "focus()" a échoué

try(){ 
<span style="white-space:pre"> </span>document.getElementById("cancel").focus() 
}catch(e){ 
<span style="white-space:pre"> </span>alert(e.name + ": " + e.what()); 
}
Copier après la connexion

Mais c'est juste bizarre ! Les résultats des deux étapes ci-dessus montrent que le décodeur prend en charge focus() et getElementById(), mais que le focus ne peut pas être défini sur la boîte de dialogue contextuelle.

Après avoir lutté pendant plus d'une heure, le grand BOSS est finalement apparu et a résolu le problème en une seule phrase ! Il est possible d'appeler activement flur() pour annuler le focus d'origine !

document.getElementById("purchase").flur()
Copier après la connexion

Alors le problème est résolu. Je dois l'apprécier ! En train de résoudre ce problème, mon idée était en fait tout à fait correcte, mais mes connaissances n'étaient évidemment pas suffisantes. L'écart entre les programmeurs ordinaires et les programmeurs seniors ne concerne pas seulement les idées pour résoudre les problèmes, mais aussi l'expérience et les connaissances !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal