Je ne peux pas obtenir IE11 pour centrer un élément d'entrée après avoir inséré dans le DOM. L'élément ne recevra pas d'entrée de texte après avoir été concentré, mais son texte de placement n'est plus visible. L'élément est créé par réact, et j'y suis accessible via React's's Refs CODE> Object dans
ComposantDidMount CODE>:
<div style={style}>
<div style={labelStyle}>Enter a name to begin.</div>
<form onSubmit={this.submit} style={formStyle}>
<input
tabIndex="1"
ref="input"
value={this.state.username}
onChange={this.updateUsername}
placeholder="New User Name"
style={inputStyle}
/>
<button {...this.getBrowserStateEvents()} style={this.buildStyles(buttonStyle)}>Create</button>
</form>
</div>
3 Réponses :
Je ne pense pas que votre problème provient de la fonction Focus (), je pense que cela vient du sélecteur.
Pour le prouver, je viens d'ouvrir mon IE11 et j'ai essayé de centrer l'entrée de recherche sur le dessus Droit de la page à l'aide de la commande suivante: p>
document.getElementById('search')[0].focus()
Le problème n'existe que dans IE cependant. L'accent fonctionne bien à Chrome et à Firefox. L'entrée reçoit également une sorte de mise au point partielle (je peux cliquer sur le texte, et le texte de l'espace réservé réapparaît, mais je ne peux pas taper du texte sans cliquer dessus). Je n'utilise pas non plus de sélecteur; J'utilise l'objet code> de React.
Ensuite, peut-être que le problème vient de REFS REFS Object CODE>, je ne sais pas ce que c'est, mais s'il s'agit d'une bibliothèque de troisième partie ou de quelque chose, la question pourrait provenir directement. Ce que je peux voir, c'est que
focus () code> fonctionne correctement sur IE11 lorsqu'il est utilisé sur une entrée.
Le problème a été axé sur IE11 est cassé lorsque la propriété CSS dans p> J'ai pu résoudre le problème. Voici un codepen pour reproduire le problème:
http://codepen.io/anon/pen/ynrjzz p> p> -MS-User-Select: Aucune code> est appliquée à l'entrée. Donc, en modifiant:
J'apprécie que cette question a été réparée, mais a relevé un autre. L'utilisateur ne peut pas captiver le texte d'entrée. Comment résoudre ces problèmes?
Comme indiqué dans https://stackoverflow.com/a/31971940 , exécution ne fonctionne pas dans IE: HTTPS : //codepen.io/macjohnny-zh/Détails/wpxwvy fonctionne à IE, aussi: https://codepen.io/ MacJohnny-ZH / Détails / Lqovbz Remarque: cela arrive également par exemple pour p> voir https: // github .com / angulaire / matériau2 / Problèmes / 15093 P> P> élément.focus () < / Code> n'a aucun effet dans IE11 lorsque la propriété CSS
-MS-User-Select: Aucune code> est définie.
Une solution de contournement peut être
(Code: https://codepen.io/macjohnny-zh/pen/wpxwvy ) P>
(Code: https://codepen.io/macjohnny-zh/pen/lqovbz ) p>
entrée code> semble être un mauvais choix pour le nom de référence
Avez-vous joué avec les autres méthodes de cycle de vie? Je me demande si des appels vers
ComponentDidUpdate code> gâchent l'ensemble de fichiers dans
composantDidMount code>.
Le problème a été causé par la
-MS-User-User-Select: Aucun code> Propriété CSS.
Ah, je vois - je pense i> Vous pouvez accepter votre propre réponse.
Je peux. Je dois juste attendre 24 heures après l'avoir posté.