-1

jQueryを使用してDOMにテキストを挿入するMVCアプリがあります。

私が使用する場合:

$("#toggle").text('<%: translated.Show %>');

テキストがレンダリングされます。

私が使用する場合:

$("#toggle").text("<%: translated.Show %>");

リソース文字列が二重引用符で囲まれている場合、JavaScriptエラーがスローされます。動作バージョンを囲む一重引用符と、誤ったバージョンを囲む二重引用符に注意してください。

理由を誰かが説明できますか?Javascriptでは一重引用符と二重引用符の間にほとんど違いがないと思いました。

'translated.Show'文字列には、プレーンテキストだけの引用符は含まれていません。

4

1 に答える 1

3

JS における二重引用符と一重引用符の唯一の違いは、一重引用符内では一重引用符をエスケープする必要があり、二重引用符内では二重引用符をエスケープする必要があることです。

問題は、内部のデータに二重引用符が含まれている可能性が最も高いですtranslated.Show(そうではないというあなたの保証にもかかわらず... 引用符文字プレーンテキストの一部と見なされます)。

ルール 3: 信頼できないデータを JavaScript データに挿入する前に JavaScript をエスケープする

于 2012-10-23T16:21:33.700 に答える