2011-04-24 3 views
1

J'ai besoin de stocker le code ReCaptcha dans une variable JavaScript, puis montrer dynamiquement le captcha (dans un DIV créé dynamiquement). Le problème est le code suivant ne peut pas être stocké dans une variable:Comment le stocker dans une variable?

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k="></script><noscript><iframe src="http://www.google.com/recaptcha/api/noscript?k=" height="300" width="500" frameborder="0"></iframe><br/><textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea><input type="hidden" name="recaptcha_response_field" value="manual_challenge"/></noscript>

Je reçois l'erreur dans Firebug: unterminated string literal. Comment le faire fonctionner?

+1

Remplacer tous les « avec \ » – Rob

+0

La Firebug raison pense est que (1) vous utilisez la citation unterminated de la chaîne (comme devrait tout navigateur conforme aux standards) marques à l'intérieur de la chaîne, qui doivent être échappées avec des antislashs (exactement comme @Rob mentionné), et (2) vous ne pouvez pas inclure de balises HTML dans les littéraux JavaScript. @ La réponse de Horos a ce que vous cherchez pour contourner cela (c'est pourquoi je n'ai pas posté de réponse de ma part). –

Répondre

1

Vous le stockez probablement dans une chaîne en utilisant " comme délimiteurs, ce qui est en conflit avec le " utilisé sur les délimiteurs de valeur des attributs. Essayez d'utiliser guillemet simple (') ou d'échapper chaque " avec une barre oblique inverse (\") pour le traiter littéralement.

1
var s = '<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k="></script><noscript><iframe src="http://www.google.com/recaptcha/api/noscript?k=" height="300" width="500" frameborder="0"></iframe><br/><textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea><input type="hidden" name="recaptcha_response_field" value="manual_challenge"/></noscript>' 
Questions connexes