0

JavaScript 関数に渡すために使用する必要がある文字列があります。私は多くの方法を試しましたが、まだうまくいきません。

<a href="javascript:goFac('<%=name%>')"><%=name%></a>

name フィールドは、 It's Morningなどの一重引用符を含む文字列です。私は使用しようとしました:

String nameString = rs.getString("name");
nameString = nameString.replaceAll("'","\'");

<a href="javascript:goFac('<%=nameString %>')"><%=nameString%></a>

また、

nameString = URLEncoder.encode(nameString);

また、

nameString = nameString.replaceAll("'","&#39;");

また、

 nameString = nameString.replaceAll("'","&apos;");

私はまだそれを機能させることができません。また、ELには行けません。

4

4 に答える 4

1

文字列内の一重引用符 (') を Java コード内の JavaScript エスケープ (バックスラッシュ) 一重引用符 (\') に置き換える場合は、バックスラッシュ文字を (バックスラッシュで!) エスケープする必要があります。例えば:

nameString = nameString.replaceAll("'","\\'"); 

参照: String.replaceAll 1 つのバックスラッシュと 2 つのバックスラッシュ

于 2012-08-10T10:50:54.277 に答える
1

一重引用符の代わりにString.fromCharCode(39)を使用してみてください。String.fromCharCode( 39) は一重引用符の ASCII コードです。

于 2012-08-11T04:40:18.610 に答える
0

関数呼び出しの前に HTML エンコーディングが行われ、一重引用符が&#39;.

nameString = nameString.replaceAll("&#39;","\\'");
于 2013-01-23T16:18:18.823 に答える