Bug IE Javascript, Ajax avec Prototype

Fermé
gcornut - 22 mars 2009 à 23:29
 BifTannen - 12 mars 2010 à 15:06
Bonjour,
J'utilise la librairie javascript prototype pour faire de l'ajax. J'ai fais une fonction qui marche parfaitement sur Firefox et Webkit (Safari, Chrome ...) mais pas sur Internet Explorer 7.
Voilà la fonction:

var myAjax = new Ajax.Request(
"./ajax/getmessmod.php",
{
method: 'post',
parameters: "modid=1",
onSuccess: function(transport, json) {
var modform = new Element('form', {id: 'modform', action: scriptname, method: "post", enctype: "multipart/form-data", style: "display:none;margin-bottom:15px;"});
var modheight = $('post1').offsetHeight + 100 + "px";
var modtext = new Element('textarea', {name: "messagemod", style: "width:449px;height:"+modheight});
modtext.innerHTML = transport.responseText;
$('post1').innerHTML = "";
var modok = new Element('input', {id: "ok", type: "submit", value: "", style: "float:right;margin-left:0px;"});
var modhid = new Element('input', {type: "hidden", name: "modid", value: "1"});
$('post1').appendChild(modform);
modform.appendChild(modtext);
modform.appendChild(modok);
modform.appendChild(modhid);
Effect.BlindDown('modform');
},
});


Cette fonction appelle un fichier php qui renvoi du texte venant . Un formulaire est alors crée puis le texte récupérer avec l'ajax est insérer dans le formulaire afin de pouvoir modifier le texte venant de la base de donnée.
Je pense que le problème vient de l'interprétation du javascript par Internet Explorer et pas de Prototype mais je sais pas vraiment.
A voir également:

5 réponses

Bonjour,
J'arrive peut être un peu tard, mais pour ceux qui comme moi viennent d'avoir le problème, j'ai résolu le mien juste en corrigeant la syntaxe.

Par exemple si je prend un morceau de code de gcornut, du dimanche 22 mars 2009 à 23:29:26...

Plutot que d'écrire :
var modform = new Element('form', {id: 'modform', action: scriptname, method: "post", enctype: "multipart/form-data", style: "display:none;margin-bottom:15px;"});

Je rajoute des quotes à tous les noms des proprietés de mon nouvel élément (pas que à 'form'). D'où:
var modform = new Element('form', {'id': 'modform', 'action': scriptname, 'method': "post", 'enctype': "multipart/form-data", 'style': "display:none;margin-bottom:15px;"});

J'espere que cela rendra heureux plus d'un.
2
Bonjour,

J'ai le même problème. As tu eu des avancées là dessus?

Merci,

A +
0
Bonjour,
Merci d'avoir relancé le sujet. Alors j'ai étudié la question, j'ai essayer d'éxecuter la fonction directement grâce a une console javascript (http://www.billyreisinger.com/jash/) rien a faire je trouve pas le problème alors j'ai opté pour une solution radicale: Pas d'ajax pour IE mais simplement une page en plus ( dur, dur la vie de développeur web avec IE :( )
0
OK c'est reçu.

Si jamais je trouve, je t'informe!!

Ben
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
la discussion date d'il y a un an, mais bon...au cas où...<br/>

j'ai moi-même un soucis en utilisant Ajax updater de Prototype, tout marche parfaitement avec Firefox mais pas avec IE 8.<br/>
<br/>
En gros, je déclenche le rechargement d'une div par l'événement onClick dans un lien :<br/>

<a href="javascript: void(0)" onClick="new Ajax.Updater('centre','articles.html');"> <br/>

le script lié est : <br/>

<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <br/>

J'ai tenté de rajouté "name" en target dans ma div en plus de l'ID : <br/>

<div id="centre" name="centre"></div> <br/>
<br/>
Mais cela ne marche toujours pas...si quelqu'un à la solution...<br/>
<br/>
Merci
0