0

私のjavascript(そのjquery)にこのコード行があります

$('#myobject').append("<img width='225' title='"+addslashes(post.title)+"' src='"+urlvisual+"' />");

addlashes関数は、引用符のエスケープに関するここの別の投稿から取得されました

function addslashes( str ) {
    return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\0/g, "\\0");
}

しかし、結果はまだタイトル属性を壊しています、何か提案はありますか?

4

3 に答える 3

6

とにかくjQueryを使用しているので、要素構築構文を使用できます。

$('<img/>', {
    width: 255,
    title: post.title,
    src: urlvisual
}).appendTo('#myobject');

よりクリーンなコード、そしてエスケープは必要ありません:)

于 2013-01-13T20:30:22.433 に答える
1

バックスラッシュの代わりにHTMLエンティティを使用して文字列をエスケープする必要があります。

二重引用符:" => &quot;

一重引用符:' => &#39;

于 2013-01-13T20:31:06.543 に答える
0

この関数は正しく機能するはずです。

function addslashes( str ) {
    return (str+'').replace(/'/g, "\\'");
}
于 2013-01-13T20:30:35.220 に答える