0

HTMLおよびJavaScriptを介した入力フィールドの設定値との不一致。

次に例を示します。

   <!DOCTYPE html>
   <html>
   <body>
   <input type="text" id="f1" ><br>
   <input type="text" id="f2"  value="123&apos;134"><br>
   <input type="text" id="f3" ><br>
   <input type="text" id="f4" value="123\'134"><br>
   </body>
   </html>​

document.getElementById('f1').value = "123&apos;134";
document.getElementById('f3').value = "123\'134";​

ここで実行します

http://jsfiddle.net/UfaJk/2/

HTMLで属性値を設定する場合、HTMLエンティティは正常ですが、エスケープ文字は正常ではありません。JavaScriptを介して設定する場合、すべて逆方向になります。

これをどのように処理しますか?

4

2 に答える 2

1

HTMLはHTMLとして解析されます。これには、文字列&apos;をアポストロフィ文字として解釈する必要があるなど、エスケープに関する特定の規則があります'

同様に、javascriptには独自の(そして異なる)エスケープルールがあります。たとえば、文字列\'はアポストロフィ文字として解釈する必要があります'

于 2012-10-23T14:54:46.850 に答える
0

バックスラッシュはjavasciptのエスケープ文字であり、バックスラッシュリテラルを出力するには、出力するすべてのバックスラッシュに対して2つのバックスラッシュが必要です。例えば:

 document.getElementById('f3').value = "123\\'134";​

お役に立てれば。

于 2012-10-23T14:56:24.987 に答える