10

「これは悪い習慣であり、醜いハックであることは承知しています (そして申し訳ありません) でも...」

jQuery TOOL のツールチップ ウィジェットを使用して、ユーザーがホバーしたときに html 要素にツールチップを表示しています。このウィジェットでは、ツールチップの html を要素のtitle属性に追加します。

onclickその html の中に、インラインイベント ハンドラをバインドする要素があります。

残念ながら、呼び出しようとしている関数にパラメーターを渡すには、引用符の層が多すぎます。

私はこのようなものを持っています:

<div title="<div onclick='myFunction(_____)'>My tooltip content</div>">My element</div>

myFunctionこれは、別の引用符のセットを必要としないため、整数を渡す必要がある場合に機能します。残念ながら、文字列を に渡したいですmyFunctiononclickまたは文字列を閉じないように、この文字列パラメーターをさらにエスケープするにはどうすればよいtitleですか?

4

2 に答える 2

9

Inside of HTML attributes, you should encode quotes as HTML entities, e.g.:

<div title="This says &quot;Hello!&quot;">
    Hello!
</div>
于 2013-04-02T22:26:23.927 に答える
0

特定の問題の解決策を見つけることができました。これが一般的なケースで機能するのか、それとも jQuery TOOLs が文字列をエスケープ解除するために魔法のようなことをしているのかはわかりませんが、最終的にエスケープして、&quot;実行された有効な Javascript に評価されました。

このようなもの:

<div title="<div onclick='myFunction(&quot;_____&quot;)'>My tooltip content</div>">My element</div>

正直なところ、これがどのように機能しているのかよくわかりません。&quot;プロセスのどの部分がこれらの s を実際の機能的な引用符に変更しているのかを誰かが明確にしてくれれば幸いです。

于 2013-04-02T22:30:29.133 に答える