나는 javascript 또는 jquery를 사용하여 페이지에서 모든 HTML 태그를 제거하고이 페이지의 일반 텍스트를 제공하는 함수를 작성하는 방법을 찾으려고합니다.자바 스크립트를 사용하여 HTML없이 일반 텍스트로 웹 페이지를 가져 오는 방법은 무엇입니까?
어떻게 수행 할 수 있습니까? 어떤 아이디어?
나는 javascript 또는 jquery를 사용하여 페이지에서 모든 HTML 태그를 제거하고이 페이지의 일반 텍스트를 제공하는 함수를 작성하는 방법을 찾으려고합니다.자바 스크립트를 사용하여 HTML없이 일반 텍스트로 웹 페이지를 가져 오는 방법은 무엇입니까?
어떻게 수행 할 수 있습니까? 어떤 아이디어?
IE & 웹킷
document.body.innerText
기타 :
(므르 ElGarhy에 의해 제안)document.body.textContent
대부분의 JS 프레임 워크는이 작업을 수행 할 수있는 crossbrowser 방법을 구현한다. 이것은 일반적으로 다음과 같이 다소 구현됩니다
text = document.body.textContent || document.body.innerText;
웹킷은 innerText와와 textContent
스트립 반면 모든 것을 일부 서식을 유지 것으로 보인다.
htmlClean을 사용하십시오.
보관할 형식에 따라 다릅니다.
jQuery(document.body).text();
내가 사용합니다 :
<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript">
jQuery.fn.stripTags = function() { return this.replaceWith(this.html().replace(/<\/?[^>]+>/gi, '')); };
jQuery('head').stripTags();
$(document).ready(function() {
$("img").each(function() {
jQuery(this).remove();
});
});
</script>
이 것 하지 릴리스 어떤 스타일을하지만, 모든 태그를 제거하지만 jQuery를 사용하면 이런 식으로 할 수 있습니다.
원하는 것을 원하십니까?
[편집] 지금 이미지 태그 [/ 편집]을 제거
정규 표현식으로 HTML을 구문 분석하지 마십시오. – Pointy
는 TextContent 또는 innerText와 가진 유일한 문제는 그들 사이에 공백없이 함께 인접 노드에서 텍스트를 잼 수 있다는 것입니다을 포함하도록 편집 그들.
중요하면 몸체 나 다른 컨테이너를 저주하고 배열 에 텍스트를 반환하고 공백이나 줄 바꿈 문자를 사용할 수 있습니다.
document.deepText= function(hoo){
var A= [], tem, tx;
if(hoo){
hoo= hoo.firstChild;
while(hoo!= null){
if(hoo.nodeType== 3){
tx= hoo.data || '';
if(/\S/.test(tx)) A[A.length]= tx;
}
else A= A.concat(document.deepText(hoo));
hoo= hoo.nextSibling;
}
}
return A;
}
alert(document.deepText(document.body).join(' '))
// return document.deepText(document.body).join('\n')
다른 사람이 텍스트를 감쌀 경우를 대비해서'nodeType'을 4로 추가하는 것도 좋은 생각입니다.(이것은 jQuery가 최소한 어떻게하는지입니다.) –
HTML 이메일의 서식있는 텍스트를 일반 텍스트로 변환해야했습니다.
function getTextFromHTML(obj) {
var ni = document.createNodeIterator(obj[0], NodeFilter.SHOW_TEXT, null, false);
var nodeLine = ni.nextNode(); // go to first node of our NodeIterator
var plainText = "";
while (nodeLine) {
plainText += nodeLine.nodeValue + "\n";
nodeLine = ni.nextNode();
}
return plainText;
}
당신이 다음,'
'의 텍스트 내용을 반환하는 문자열을하고자 함 : IE에서 나를 위해 일한 다음 (OBJ는 jQuery를 개체입니다)? – Matchu이것은 유용하게 보입니다. http://stackoverflow.com/questions/822452/strip-html-from-text-javascript –