.html () méthode jQuery bizzare bug - résolu en espace vide localement, mais pas en production
-
02-07-2019 - |
Question
Je fais une simple commande jquery:
element.html (& & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp; nbsp; & amp;; nbsp; ");
en utilisant la méthode attributs / html: http://docs.jquery.com/Attributes/html
Cela fonctionne sur le serveur de mon moteur d'application local, mais cela ne fonctionne pas une fois que j'applique au serveur Google. L'élément se vide, mais ne se remplit pas d'espaces.
Donc au lieu de " "
(6 espaces) c'est juste " "
.
Encore une fois, cela fonctionne sur App Engine, mais je ne pense pas que cela devrait compter ...
La solution
Vous pouvez essayer de générer de l'espace au cours de l'exécution, afin de ne pas le réduire ou quoi que ce soit pendant le transport:
element.html(String.fromCharCode(32));
Autres conseils
Cela ne constitue peut-être pas une réponse directe à votre problème, mais pourquoi voulez-vous même créer autant d'espaces? Vous pouvez probablement obtenir le même résultat en modifiant simplement les éléments padding-left
ou text-indent
de cet élément.
element.css("textIndent", "3em");
L'utilisation d'un tas de & amp; nbsp;
s est une manière très risquée de faire une indentation.
Votre jQuery devrait ressembler à ceci:
$('element').html(' ');
... où ' & amp; nbsp;
' est égal à une fois l'espace.
(avec le nombre d'espaces que vous voulez, bien sûr)
Avez-vous essayé d'utiliser & amp; nbsp;
au lieu d'espaces? La méthode html ()
transfère simplement la chaîne dans le innerHTML des éléments.
Existe-t-il une possibilité que le code soit réduit au cours du processus de déploiement sur App Engine?
Je ne m'attendrais pas à ce qu'une chaîne d'espaces soit conservée telle qu'elle est écrite. Peut-être pourriez-vous réellement échapper à l'espace blanc et forcer toute minification à le quitter:
exemple:
element.html('\ \ \ \ \ \ \ \ \ \ \ \ ');