2011-10-24 3 views
0

J'ai un script commençant par le commentaire notaiton dans la réponse JSON. Ceci génère une erreur de syntaxe dans ie7 sur runscirpts @ eval (e.text); // exécute le script.Scripts problème dans IE7 dans la réponse JSON

<script type="text/javascript"><!-- 
$(document).ready(function(){     
    //utils.normalizeColumnHeight($('.aboutus-filter-wrapper, .aboutdesc_wrapper,.right_box_wrapper')); 
}); 
// --></script> 

Iam exécute les scripts en utilisant des scripts pour ie. voici le code

runScripts1: function(e) { 
    if (e.nodeType != 1) return false; //if it's not an element node, return 

    if (e.tagName.toLowerCase() == 'script') { 
     //alert(e.text); 
     eval(e.text); //run the script 
    } 
    else { 
     var n = e.firstChild; 
     while (n) { 
      if (n.nodeType == 1) forrester.runScripts1(n); //if it's an element node, recurse 
      n = n.nextSibling; 
     } 
    } 
    return true; 
}, 

comment éviter les commentaires?

Répondre

0

Vous utilisez une construction de commentaire non valide dans l'extrait Javascript, de plus, la fermeture du contexte de commentaire invalide est commentée de manière appropriée lorsque le point de départ est présent.

C'est,

  • la construction <!-- comment --> est valide en HTML
  • les //comment ou /* comment */ constructions sont valables en Javascript
  • mais ils ne sont pas interchangeables

Browsers peut-être pas comme ça du tout.

Si vous obtenez ce script en réponse à un appel quelque part, alors j'essaierais d'abord de regarder la source: avez-vous le contrôle de la sortie?

Si tel est le cas, modifiez-le pour supprimer les éléments non valides. Si vous êtes obtenir ce code à partir d'un appel de service/source externe, je vous recommande de ne pas le faire du tout. Cela, cependant, est peut-être un sujet pour une autre question.