3

動的に生成された HTML コンテンツを格納する変数を作成する必要があります。PHP から返された文字列の html コンテンツには、一重引用符または二重引用符が含まれている場合があります。

html_content=<?=$string;?>;

文字列には、次のように二重引用符が含まれる場合があります。

<span id="something">something else</span>

または次のような一重引用符:

<span id='something'>something else</span>

では、文字列をJavaScriptで正しく保存するにはどうすればよいですか? 一重引用符や二重引用符は使用できません。

4

3 に答える 3

2

次のように、出力前にサーバー側で変更することにより、そのような文字列を保存できます。

html_content = "<?=addslashes($string);?>"

このメソッドaddslashes($string)は、JavaScript 変数に渡す前に、実行時に二重引用符をエスケープします。

于 2012-09-13T20:48:30.040 に答える
1

JavaScript のエスケープ関数を使用して、文字列を保存する前にシリアル化することができます。それはうまくいくでしょう。

ただし、ここでのより大きな問題は、単一引用符が、そのような id 属性で使用しようとしている方法では実際には有効ではないことです (HTML 仕様に従って)。常に二重引用符である必要があります。その元のコードが自分の管理下にない場合、できることはあまりありません。単に壊れているだけです。しかし、それがあなたの管理下にある場合は、それも修正する必要があります。

于 2012-09-13T20:41:13.500 に答える
0

json_encodePHP から JavaScript にほぼすべての変数を渡すために使用します。

html_content=<?=json_encode($string)?>;

文字列の場合、引用符と必要なエスケープが自動的に追加されます。

于 2012-09-13T20:38:32.970 に答える