J'ai essayé d'implémenter un curseur sur une zone de saisie et IE m'a donné beaucoup de maux de tête. J'ai essayé des choses le long de la ligne de (changer le délai d'attente trop, à un grand nombre):Applet empêchant le focus dans IE
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
et ça ne marchera pas. J'ai remarqué que j'ai une applet sur la page aussi, et quand je retire l'applet, le travail ci-dessus. Aussi, si je mets une alerte avant le déclencheur focus()
, cela fonctionnera.
L'applet ne fait rien de particulier (il récupère en fait l'adresse MAC de l'utilisateur) et fait un appel à une fonction JS externe à la fin pour envoyer l'adresse MAC au DOM. J'ai essayé de mettre l'accent (timeout et tout) à la fin de cette fonction JS mais ça ne marchera pas non plus.
Qu'est-ce qui pourrait ne pas fonctionner? Les choses fonctionnent bien dans Firefox, mais pas dans IE.
configuration actuelle:
//This is called from within the applet using a window.call
function everythingDone()
{
$("#someinput").focus();
//setTimeout(function() { document.getElementById('someInput').focus(); }, 1000);
};
$(function()
{
var applet = "<object classid='clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA' width='0' height='0'><param name='code' value='someapplet.class' /><param name='archive' value='/someapplet.jar' /></object>";
$("#appletarea").html(applet);
//setTimeout(function() { document.getElementById('someInput').focus(); }, 1000);
});
Merci! J'ai essayé 'setFocusable (false)' avec succès, mais cela a bien fonctionné! – Andy
Merci pour cela, je viens de passer 4 heures à essayer de comprendre ce qui volait le focus, et comment l'éviter. C'est la solution. – Oversteer
A travaillé pour moi aussi: IE9 + JRE 6u45 –