如何将Javascript代码显示为页面内容

How do I display Javascript code as page content?

本文关键字:显示 Javascript 代码      更新时间:2023-09-26

我制作了一个需要javascript的网页。更具体地说,如果有人听说过它,我将使用Ajax-Solr API为ApacheSolr/Lucene搜索引擎制作一个良好的用户界面。对于出现的一些结果(即已爬网的网页),javascript嵌入在一些网页上,这会打乱我随后的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>';

不露面。我该怎么办才能解决这个问题?

您需要对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 />');
}