2012-07-12 3 views
1

자바 스크립트가 필요한 웹 페이지를 만들었습니다. 좀 더 구체적으로 들어 본 사람이라면 Apache Solr/Lucene 검색 엔진을위한 훌륭한 사용자 인터페이스를 만들기 위해 Ajax-Solr API를 사용하고 있습니다. 몇 가지 결과 (크롤링 된 웹 페이지)는 javascript가 일부 웹 페이지에 포함되어 있으며 그 다음 html/javascript의 일부가 엉망입니다. 도와주세요. 여기에 내 코드의 일부는 다음과 같습니다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 온라인 자바 스크립트 파일에서 어떤 임의의 자바 스크립트를 포함 할 수 있으며,하지가 그 버튼을 야기

<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>'; 

이 표시되지 않습니다. 이 문제를 해결하려면 어떻게해야합니까?

답변

1

당신은 자바 스크립트를 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 />'); 
} 
+0

workssssssss을 완벽하게! 고마워요. 전에 < and >을 시도했지만, 코드를 제안한 것처럼 시도한 후에 만 ​​작동했습니다. 당신은 몇 가지 달콤한 코드 강조를 원하는 경우 –

+1

, 나는 매우 추천 할 것입니다 : http://codemirror.net/ JS 예 : http://codemirror.net/mode/javascript/index.html, 당신은 당신이 그것으로 원하는 건 뭐든지 할 수 있습니다, 편집 기능을 사용 중지하는 것도 포함됩니다. –

+0

끝내 주셔서 감사합니다. –

관련 문제