Tout d'abord quelques précisions, je travaille avec xampp, apache et Mysql.
Je gére les pages html avec des templates.
J'ai une erreur en javascript (avec une popop),je vais essayer de faire simple ... mais ca va être dur
En gros :
j'ai une fenêtre qui contient un lien "Afficher"
ce lien fait appel à une fonction redirection
function redirection(numremplacement)
{
// on recharge la page appelante !
opener.location.href = 'index.php?cat=3&action=gestion_remplacement';
/* on la remplie
on a besoin de setTimeout !
car il faut attendre que la page appelante soit complètement chargée!
pour que TakeEtablissmeent fonctionne */
setTimeout('TakeRemplacement('+numremplacement+')', 2000);
}
comme vous pouvez le voir cette fonction charge une nouvelle page dans la page appelante puis on veut remplir le formulaire de cette nouvelle page
en faisant appel à la fonction TakeRemplacement.
function TakeRemplacement(numremplacement)
{
alert('TakeRemplacement -> numremplacement : '+numremplacement);
/* essai parent ie : pas ok mozilla : pas ok du tout !!
opener.parent.FormGestionRemplacement.Num_Remplacement.value = numremplacement;
opener.parent.FormGestionRemplacement.submit();
*/
/* essai 1 :*/
window.opener.document.forms["FormGestionRemplacement"].elements["Num_Remplacement"].value = numremplacement;
window.opener.document.forms["FormGestionRemplacement"].submit();
/* essai 2 : idem ?
opener.document.FormGestionRemplacement.Num_Remplacement.value = numremplacement;
opener.document.FormGestionRemplacement.submit();
*/
window.close(); // pour fermer la popup
}
Voila donc parfois ca fonctionne correctement !
et parfois ca me met une erreur !!
La plupart du temps quand ce me met l'erreur si je reclique sur le lien ca fonctionne correctement (parfois il me semble qu'il faut encore recliquer)
Mais dans un des cas ca ne fonctionne plus du tout sous mozilla : c'est quand je met opener.parent c'est peut-être pas reconnu ?
sous ie !!
avec essai 1 :
ligne 55
car : 2
'elements' a la valeur Null ou n'est pas un objet.
code 0
url : http://127.0.0.1/Remplacements/popup.ph ... mplacement
avec essai 2 :
ligne 55
car : 2
opener.document.FormGestionRemplacement.Num_Remplacement
a la valeur Null ou n'est pas un objet.
code 0
url : http://127.0.0.1/Remplacements/popup.ph ... mplacement
avec essai parent
Ligne : 49
car : 2
Erreur:'opener.parent.FormGestionRemplacement.Num_Remplacement'
a la valeur Null ou n'est pas un objet.
code 0
url : http://127.0.0.1/Remplacements/popup.ph ... mplacement
sous mozilla !!
essai 1 ou essai 2 :
Erreur : opener.document.FormGestionRemplacement has no properties
Fichier Source : http://127.0.0.1/Remplacements/Librairi ... ipt.lib.js
Ligne : 58
avec essai parent :
Erreur : opener.parent.FormGestionRemplacement has no properties
Fichier Source : http://127.0.0.1/Remplacements/Librairi ... ipt.lib.js
Ligne : 48
Que veut dire exactement l'erreur ???? que le champ de mon formulaire n'existe pas ??
car un autre truc un peu bizarre quand je met une alert ca fonctionne tout le temps (apperemment)
Alors je me demande si ce n'est pas un pb de chargement de page.
J'en suis de plus en plus sure depuis que j'ai mis
" setTimeout('TakeRemplacement('+numremplacement+')', 4000); "
dans la fonction redirection.
Je sais que c'est nulle comme facon de faire ... normalement il faudrait voir le chargement de la page avec
onload
Mais .... j'ai déjà testé !!! et je n'arrive pas à utiliser cette fonction.
Il faut savoir que je n'utilise pas des frames mais des pseudo frames dans tous le site.
Ainsi on passe toujours par la page d'index
dont le code est (simplifié) :
<html>
<head>
<link href="<?="$chemin_styles/violet.css"?>" rel="stylesheet" type="text/css">
<script language="javascript" src="<?="$chemin_lib/javascript.lib.js"?>"></script>
</head>
<body leftmargin="0" topmargin="0" onLoad="Masques();">
<table >
<tr>
<td colspan="2" class="TitrePrincipal">
<div align=center><?="$appname $version"?></div>
</td>
</tr>
<tr>
<td >
<br>
<table width="90%" border="1" class="TextPrincipal">
<tr>
<td align ="center" width="100%" bgcolor="#5D90F9" class="TitrePrincipal">Menu</td>
</tr>
<tr>
<td colspan="2">
<!-- Inclusion Menu -->
<?php
include("$menu")
?>
<!-- Fin Inclusion Menu -->
</td>
</tr>
</table>
<br>
<br>
</td>
<td width="73%" valign="top">
<br>
<table width="85%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000" class="TextPrincipal">
<tr>
<td align="center" width="100%" bgcolor="#5D90F9" class="TitrePrincipal"><?=$titre?></td>
</tr>
<tr>
<td colspan="2">
<br>
<!-- Inclusion Page Courante -->
<?php
include("$page")
?>
<!-- Fin Inclusion Page Courante -->
</td>
</tr>
</table>
<br>
</td>
</tr>
</table>
</body>
</html>
j'ai essayé d emettre dans le body ou bien de mettre à false au debut de la page puis de mettre a true à la fin ...
Mais le pb est de savoir dans la fonction javascript qd la page est chargée !!!! impossible (pour moi)!!
dans index
<!-- pour savoir qd la page est chargée :
on la met à false au début et à true à la fin du chargement -->
<script language="javascript" >
var charge=false;
</script>
<!-- {charge}=true; -->
</head>
<body leftmargin="0" topmargin="0" onLoad="Masques();chargementDeLaPage();">
fonction javascript :
function chargementDeLaPage()
{ //
var $charge=true;
//alert($charge);
// alert('bouh');
}
Bon j'espère que vous avez compris mon problème ....
c'est pas sur du tout ....