1

javascriptが必要なウェブページを作りました。具体的には、誰かがそれを聞いたことがある場合は、Ajax-Solr APIを使用して、Apache Solr/Lucene検索エンジンの優れたユーザーインターフェイスを作成しています。表示される結果の一部(クロールされたWebページ)では、javascriptが一部のWebページに埋め込まれており、それが後続のhtml/javascriptの一部を台無しにしています。手伝ってください。これが私のコードの一部です:

AjaxSolr.theme.prototype.snippet = function(doc) {
    var output = '' + doc.id;
    if (doc.text.length > 300) {
        output += doc.text.substring(0, 300);
        output += '<span style="display:none;">' + doc.text.substring(300);
        output += '</span> <br id="aftsnippet"/><a href="#" class="more"><button id = "expand' + doc.id + '">Expand/Contract</button></a>';
    } else {
        output += doc.text + '<br/>';
    }
    output+='<a id="goToSite"><button>Go to Site</button></a><a href="pages/sitedetails.html?id=' + doc.id + '" target="_blank"><button id = "sitedetailsbutton' + doc.id + '">Site Details</button></a>';
    return output;
};

それが役立つかどうかはわかりませんが、doc.textにオンラインのjavascriptファイルからのランダムなjavascriptが含まれている可能性があり、それによって次のボタンが表示されます。

<button>Go to Site</button></a><a href="pages/sitedetails.html?id=' + doc.id + '" target="_blank"><button id = "sitedetailsbutton' + doc.id + '">Site Details</button></a>';

現れないように。これを修正するにはどうすればよいですか?

4

1 に答える 1

1

JavaScript を HTML エンコードする必要があります。以下でそれを行うことができます。

function htmlEncode(s) {
    return s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
}

<br />また、必要に応じて、改行文字を に置き換えることができます。

function htmlEncode(s) {
    return s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\n/g,'<br />');
}
于 2012-07-12T17:34:56.583 に答える