2009-11-09 7 views
1

Je voudrais ajouter un Javascript à la fin de certains contenus ajax, Il fonctionne très bien sur Firefox mais Internet Explorer imprimer le script sans l'exécuter.JavaScript dans Ajax - Internet Explorer

<script type="text/javascript"> 
    $.tablesorter.addParser({ 
     id: 'title', 
     is: function(s) 
     { 
      return false; 
     }, 
     format: function(s) 
     { 
      s= s.substring(s.indexOf('<span class="title">')+24,s.length-30); 
      return s.replace(' ',''); 
     }, 
     type: 'text' 
    }); 

    $.tablesorter.addParser({ 
     id: 'price', 
     is: function(s) 
     { 
      return false; 
     }, 
     format: function(s) 
     { 
      s= s.substring(0,s.length-3); 
      return s.replace(' ',''); 
     }, 
     type: 'digit' 
    }); 
    $(document).ready(function() 
    { 
     $("#result").tablesorter({ 
      headers: { 
       0: {sorter:'title'}, 
       1: {sorter:'price'}, 
       2: {sorter: false} 
      } 
     }); 
    }); 
    </script> 



function submitForm() 
{ 
$("form#search").ajaxSubmit({ 
      beforeSubmit: function(formData, jqForm, options) { 
       $("#window").html('<div style="text-align:center; display:block;"><img src="../images/commun/spinner.gif" /></div>'); 
       return true; 
      }, 
      success: function(msg, statut) { 
       $("#window").html(msg); 
       return false; 
      } 
      }); 
} 
+0

Est-ce le script que vous voulez ajouter? Comment l'ajoutez-vous? qu'entendez-vous par "à la fin de certains ajax"? – Marius

+0

Avez-vous un exemple d'invocation de la méthode ajax? Le code ci-dessus ne semble pas avoir de pertinence à la question –

+0

@Marius le bit de code contenant le bit javascript est chargé avec ajax avec la fonction submitForm. – Roch

Répondre

2

Vous devez utiliser getScript pour charger et exécuter des scripts. Vous ne pouvez pas mélanger un script avec du contenu html. Assurez-vous également que le type de contexte de la réponse du serveur est défini sur le type MIME javascript, comme 'text/javascript'.

2

J'ai eu le même problème, ce que je faisais était tout simplement mettre le contenu de script à l'intérieur d'un div avec un nom de classe spéciale. Une fois que j'obtiens la réponse et que je l'entre dans le DOM, je retire le contenu du script et je l'évalue simplement. Cela fonctionne dans tous les navigateurs :-)

0

La cause de l'erreur 80020101 est que IE ne peut pas charger/scripts de déclenchement sont retournés avec AJAX dans JQuery 1.6 si le script est enveloppé dans un commentaire CDATA. Donc, retirez le CDATA (< - ... ->) dans le code, et cela devrait fonctionner.

Questions connexes