La mise au point d'un iFrame dans IE
Il y a un arbre de menu dans mon application et cliquez sur les éléments de menu, il charge d'une url dans une iFrame. J'aime définir le focus à un élément de la page chargée dans l'iFrame.
Je suis en utilisant ce code, et il fonctionne parfaitement dans tous les navigateurs sauf IE:
var myIFrame = $("#iframeName");
myIFrame.focus();
myIFrame.contents().find('#inputName').focus();
J'ai essayé toutes les différentes options comme l'utilisation de setTimeout, mais pas de chance.
Après le chargement de la page, quand j'appuie sur la touche tab, il va à la deuxième entrée, ce qui signifie qu'il a été sur la première entrée, mais il n'est pas afficher le curseur!
Je suis en utilisant ExtJS et la ManagedIFrame plugin.
Toute aide est appréciée.
Est l'iFrame URL à partir d'un domaine différent de celui de la fenêtre principale? Il y a la sécurité de domaine craintes, et IE se comporte un peu différemment. Aussi, est-ce code enveloppé pour s'exécuter sur le document de prêt, ou tout simplement dans la page?
Il charge la page dans le même domaine. Oui, le code est encapsulé à l'intérieur du document de prêt. Il fonctionne en fait sur FireFox, Chrome et Safari, pas sur IE.
Il charge la page dans le même domaine. Oui, le code est encapsulé à l'intérieur du document de prêt. Il fonctionne en fait sur FireFox, Chrome et Safari, pas sur IE.
OriginalL'auteur Amin Emami | 2010-01-11
Vous devez vous connecter pour publier un commentaire.
Vous devez appeler la
focus()
méthode de l'iframe estwindow
objet, pas l'élément iframe. Je ne suis pas un expert de jQuery ou ExtJS, donc mon exemple ci-dessous utilise ni.OriginalL'auteur Tim Down
Est l'iFrame visible onload, ou montré plus tard? Les éléments sont créés dans un ordre différent qui est à la base de la setTimeout approche. Avez-vous essayer une haute valeur de temps d'attente sur un set timeout?
Essayer quelque chose comme au moins une demi-seconde pour tester...c'est à dire a tendance à faire les choses dans un ordre différent, de sorte qu'une forte délai peut être nécessaire pour obtenir de ne pas le feu jusqu'à ce render/finitions de peinture:
Êtes-vous concentrant à chaque fois que l'iframe src changements?
Oui, je le suis. Elle a mis l'accent juste après documentloaded événement à chaque fois.
OriginalL'auteur Nick Craver
Difficile à résoudre sans un exemple de travail, mais vous pouvez essayer de masquage et affichage de la saisie, de la force, c'est à dire le rafraîchissement de l'élément.
Quelque chose comme:
Cela pourrait secouer IE dans l'affichage du curseur.
OriginalL'auteur honeybuzzer
J'ai pu obtenir, c'est à dire un champ de saisie dans un iframe avec:
OriginalL'auteur Arne de Bruijn