amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009
-
2 avril 2008 à 17:16
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
25 avril 2008 à 11:04
Bonjour,
le cas de figure est le suivant :
J'ai un
à l'interieur d'une page qui est dans un premier temp style.visibility="hidden";
J'affiche une page formulaire dans ce div avec un script ajax :
....
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
document.getElementById('
').innerHTML = xhr_object.responseText;
}
.....
tout se passe bien
Le pb, c'est que je dois donner le focus sur un champ de ce formulaire.
donc j'ai incorporé un script (document.getElementById('nomdemonchamp').focus(); aprés avoir rechargé la page.
Or cela fonctionne au premier chargement du formulaire, mais ensuite le focus ne se fait plus.
Par contre, si je change la page et que je reviens dessus, ça refonctionne.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 25 avril 2008 à 09:27
Je te rassure depuis le temp j'ai trouvé..
Lorsque je fermais le div je faisais document.getElementById('contenu_client').style.visibility="hidden";
donc en fait la page restait tjs affichée mais pas visible, donc pas de reload de la page
(je pensais que le reload se faisait quand même puisque j'appelait la page à se charger avec document.getElementById('contenu_client').innerHTML = xhr_object.responseText, mais le serveur étant malin, il ne la rechargeait pas car elle était deja affichée mais invisible)
par contre je ne m'explique pas que malgré tout, même si la page était affichée et qu'il n'y avait pas de reload, l'instruction de focus ne fonctionnait pas...
Donc pour contourner, j'ai fait, avant la fermeture,
document.getElementById('contenu_client').innerHTML='vide.php'; (vide.php étant une page vide).
Donc quand je réaffiche ma page, je fais un réel reload, donc le focus marche.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 3 avril 2008 à 09:07
Le script qui remplis le div :
function afficher_client(url){
document.getElementById('contenu_client').style.visibility="visible";
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
function donner_focus (chp){
document.getElementById(chp).focus();
}
Sachant que quand on ferme le div, on fait uniquement :
document.getElementById('contenu_client').style.visibility ="hidden";
Je penses que c'est ce qui fait que le script ne fonctionne qu'une fois, puisque la page est déjà chargée dans le div...
Pourtout en relançant le script, cela devrait recharger une nouvelle fois la page.
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 25 avril 2008 à 09:16
ba je ne vois pas ou est le pb, sinon, si tu veus donner le focuse a ton div toute les x secondes fais un setInterval ou un setTimeOut, c'est beaucoup plus simple !!!
Si t'a besoin d'aide, MP !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?