2011-04-21 16 views
2

フォーラムプログラムで署名関数用のスクリプトを作成しています。誰かが引用やその他のJavaScript解析可能文字を入れると、プログラムが壊れます。JavaScriptで動的文字列をエスケープする

JavaScriptはスクリプトとして解析することなくJavaScriptを文字列として認識させるか、それとも失敗しますか?動的である文字列内のすべてのスクリプトをエスケープする関数ですか?

私は検索を行い、個々の文字をスラッシュでエスケープする方法については、無限のWebページしか見つけられませんでした。おそらく検索スキルが必要です。

答えて

2

JavaScriptの文字列リテラルで、サーバー側の言語を使用して署名の内容を動的に入れていますか?それはおそらく最善の方法ではありません。あなたはそれをやっているやり方を再考したいかもしれません。

例えば、より良い方法は、ページ上に署名のための要素(視覚的に区別する必要はありません)を持つことができます。 JavaScriptランタイム中のスクリプト。あなたはまだあなたが行っているルートを取るしたい場合は

(あなたのスクリプトの中で、二重引用符で囲まれた文字列を使用している場合\"または")、あなたは\''を置き換えることができるとして、実際の改行に置き換えられている、\\n\nを置き換えます改行がエスケープします。

+0

これは設定方法です。これはユーザーが自分のプロフィールの内容を変更できるユーザーパネルページです。設定の1つは署名です。 PHPはデータベースからユーザのすべての情報を取得し、ユーザがその設定を変更したいときに正しいdivを表示するjavascript関数でそれを叩く。 PHPがプルしたシグネチャを表示すると、シグネチャ内の解析可能な情報を介してJavaScriptが破壊されます。私はむしろページの全体フォーマットを変更しないでください - 方法があると思います – linus72982

+0

私の最後の声明が私の質問に役立つはずです。 –

+0

私はすべてのエスケープするたびにpreg_replaceに相当するjavascriptを実行しない限り、データが動的なので、ここで個別にエスケープする文字は使用できません。 PHPであなたのために行う関数があります。私はちょうどjavascriptに1つしかないと思っていました – linus72982

関連する問題