-1

PHPでは、JSONに変換してJSクライアントに送信するこのオブジェクトを作成します。

$arr = array("img"=>"http://www.myDomain.com/imgs/pic_1.jpg","data"=>"<p>This is a paragraph <a href='#' onclick='MyFunction('myParameter');'>My Link</a></p>");

引用符で何か問題が発生していると思いますが(関数呼び出しを確認してください)、現時点では、HTMLに挿入されると、MyFunctionが呼び出されることはありません。その状況で引用符をエスケープする正しい方法はどれですか?

編集:これは結果のJSONです:

{"img":"http:\/\/www.myDomain.com\/imgs\/pic_1.jpg","data":"<p>Paragraph: <a href='#' onclick='localFunction('parameter');'>Link<\/a><\/p>","length":2}
4

3 に答える 3

1
<a href='#' onclick='MyFunction('myParameter');'>

「onclick」内に一重引用符がありますが、「onclick」自体は一重引用符で区切られています。

試す:

$arr = array("img"=>"http://www.myDomain.com/imgs/pic_1.jpg","data"=>"<p>This is a paragraph <a href='#' onclick=\"MyFunction('myParameter');\">My Link</a></p>");
于 2012-05-08T09:22:53.763 に答える
1

JSONについてのあなたの言及は赤いニシンです。

コードを見てください。属性値の開始と終了をマークしました:

 onclick='MyFunction('myParameter');'>
         ^           ^

異なる引用符を使用する必要があります。これらは、そのタイプの引用符で区切られたPHP文字列内にあるため、エスケープする必要があります。

 onclick='MyFunction(\"myParameter\");'>

…またはHTMLエンティティを使用する必要があります:

 onclick='MyFunction(&quot;myParameter&quot;);'>

ただし、一般的には、組み込みのイベント属性を完全に避け、代わりにJavaScriptイベントバインディングを使用する必要があります(多くの場合、イベント委任を使用するため、DOMに新しい要素を追加するたびにイベントをバインドする必要はありません)。

于 2012-05-08T09:24:04.093 に答える
1

に引用符のネストが間違っていますonclick='MyFunction('myParameter');'。代わりに、エスケープされた二重引用符を使用してください。

onclick=\"MyFunction('myParameter');\"
于 2012-05-08T09:22:45.373 に答える