Définir le focus sur iframe dans Chrome
J'ai une iframe (id: 'chat'
) avec designMode='on'
dans google Chrome.
Sur Enter événement keypress j'appelle la fonction send()
, qui reprend le contenu de l'iframe et l'écrit sur un support. Mon problème est que lors de l'effacement de l'iframe, je perds le focus.
Comment puis-je définir le focus pour que je puisse continuer à taper du texte dans l'iframe?
function send(){
var $iframe = $('#chat');
var text = $iframe.contents().text() + "\n";
socket.send(text);
//When this is done, the focus is lost
//If commented, the focus will not be lost
$iframe.contents().find('body').empty();
//My different failed attempts to regain the focus
//$iframe.focus();
//$iframe.contents().focus();
//$iframe.contents().find('body').focus();
//$iframe.contents().find('body').parent().focus();
//$iframe[0].contentWindow.focus();
//I've also tried all the above with timers
//setTimeout( function(){ $('#chat').contents().focus(); }, 100);
}
J'ai essayé beaucoup de solutions sur d'autres questions, mais aucune ne semble fonctionner.
OriginalL'auteur ANisus | 2011-11-13
Vous devez vous connecter pour publier un commentaire.
L'astuce consiste à mettre l'accent sur le corps, puis de créer un
Range
.OriginalL'auteur J. K.
Cette question a été la réponse ici
En gros, si vous n'êtes pas de l'actualisation de l'iframe, vous pouvez utiliser:
Noter que je suis en saisissant le sous-jacent iframe objet DOM.
Que si vous le faites dans un setTimeout pour donner l'iframe un peu de temps pour commencer à gonfler?
OriginalL'auteur Arturo Sevilla
J'ai essayé ci-dessous la solution, il fonctionne dans tous les navigateurs (IE/Chrome/Firefox)
Contexte: je veux me concentrer l'iframe tout le temps.
Espérons que cela aide, si quelqu'un dans le besoin...
OriginalL'auteur Champ
J'ai testé cette solution avec google Chrome. J'ai posté dans La mise au point pour le contenu de l'iframe.
Voici le code pour créer un iframe à l'aide de jQuery, ajouter le document, sondage jusqu'à ce qu'il est chargé, puis se concentrer sur elle. C'est mieux que le réglage de l'arbitraire d'un délai d'attente qui peut ou peut ne pas fonctionner en fonction de combien de temps l'iframe de chargement.
Le code de détection lorsque l'iframe est chargé a été adapté à partir Biranchi's réponse à Comment vérifier si iframe est chargé ou s'il a un contenu?
OriginalL'auteur Stephen Ostermiller