.html()jQueryメソッドの奇怪なバグ-ローカルでは空のスペースに解決されますが、本番環境では解決されません
-
02-07-2019 - |
質問
単純なjqueryコマンドを作成しています:
element.html("& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;& nbsp;");
attributes / htmlメソッドの使用: http://docs.jquery.com/Attributes/html
ローカルApp Engineサーバーで動作しますが、Googleサーバーにプッシュすると動作しません。要素は空になりますが、スペースで埋められません。
"の代わりに"
(6個のスペース)は単なる""
です。
もう一度、これはApp Engineで実行されていますが、それは重要ではないと思います...
解決
実行中にスペースを生成してみてください。そうすれば、スペースが削除されたり、トランスポート中に何が起きたりすることはありません。
element.html(String.fromCharCode(32));
他のヒント
これはあなたの問題に対する直接的な答えではないかもしれませんが、なぜあなたはスペースの山に入れたいのですか?その要素の padding-left
または text-indent
を変更するだけで、おそらく同じ結果を得ることができます。
element.css("textIndent", "3em");
& nbsp;
のヒープを使用することは、インデントを行う非常に危険な方法です。
jQueryは次のようになります。
$('element').html(' ');
...ここで、「& nbsp;
」は1回スペースです。
(もちろん、必要なスペースがたくさんあります)
スペースの代わりに& nbsp;
を使用してみましたか? html()
メソッドは、文字列を要素のinnerHTMLに送り込むだけです。
コードがApp Engineにデプロイされるプロセスの一部として縮小される可能性はありますか?
書かれたままの空白文字列が保持されることは期待していません。おそらく、実際に空白文字をエスケープして、任意の縮小を強制的に残すことができます。
例:
element.html('\ \ \ \ \ \ \ \ \ \ \ \ ');