2011-10-29 1 views
-2

Pourquoi IE se plaint-il de cet appel javacript?Pourquoi IE se plaint-il de cette ligne js?

$.get("profile_completeness.php?id=<?php echo($user_id); ?>", function(data) { 
    var percentage = data.match(/id="percentage_complete" value="(\d+)"/)[1]; 
    alert(percentage); 
}) 

Cela fonctionne très bien dans Chrome, et FF mais IE jette une exception.

Voici l'erreur que je reçois:

Unable to get value of the property '1': object is null or undefined. 

Si je supprime la ligne de pourcentage var l'erreur a disparu.

Des idées pourquoi?

+7

Quelle est l'exception? – Randomblue

+0

Définir 'data'. –

Répondre

2

La raison est que la variable data ne contient pas ce que vous pensez qu'il fait.

Cela fonctionne très bien dans IE:

var data = 'id="percentage_complete" value="42"'; 
var percentage = data.match(/id="percentage_complete" value="(\d+)"/)[1]; 
alert(percentage); 

Si vous avez créé la chaîne en utilisant innerHTML, il sera différent en fonction somehwat du navigateur. Vous n'obtiendrez pas le code HTML d'origine à partir duquel les éléments ont été créés, mais le navigateur recrée le code HTML à partir des éléments DOM, et chaque navigateur a différentes façons de formater le code HTML.

+0

Je suppose que je ne comprends pas votre réponse. Les données renvoyées par ma fonction php sont formatées différemment d'un navigateur à l'autre? Cela n'a pas de sens. – Paul

+0

@Paul - Ce qui n'a pas de sens, c'est que vous ne nous dites pas quelle était l'exception. – ChaosPandion

+0

@Paul: Cette partie de la réponse ne s'applique pas à cette partie de votre question, comme vous l'avez ajouté après avoir écrit la réponse ... – Guffa

Questions connexes