티스토리에서 글을 작성할 때 복사한 텍스트를 붙여넣기 하면 공백 대신 문자가 삽입되는 경우가 많습니다. 이 경우 복사한 텍스트를 HTML 모드에서 붙여넣기 하면 가 삽입되지 않습니다. 하지만 이 방법은 귀찮기 때문에 저는 그냥 본문에 붙여넣기 합니다. 다른 방법으로 자바스크립트를 사용하여 티스토리에서 를 제거하는 것도 가능합니다.
자바스크립트를 사용하여 티스토리 제거하는 방법
이전 글에서는 jQuery를 사용하여 [** **]를 제거하는 방법에 대해 설명한 적이 있습니다. 하지만 그 방법을 이용할 경우 고래스킨에서 신고 버튼이 작동하지 않는 문제가 발생했습니다.
자바스크립트를 사용하면 블로그 속도에도 덜 영향을 미치고 티스토리 신고 버튼에도 영향을 미치지 않는 것 같습니다.
[참고*"NBSP 문자 제거 툴"을 사용하여 nbsp 문자를 제거하는 것도 가능합니다.*]
다음과 같은 자바스크립트 코드를 [**</body>**] 태그 바로 위에 추가하면 [** **]가 제거될 것입니다.
<script>
var options = document.getElementsByTagName('article')
for (index = 0; index < options.length; ++index) {
options[index].innerHTML = options[index].innerHTML.replace(/\ /g, ' ');
}
</script>
이 코드는 how to remove   by javascript 문서를 참조한 것입니다. 이 코드에 대하여 다음과 같은 의견도 있습니다.
Bad idea, since string can appear in the HTML while not being an HTML entity, for example it can appear in attributes (in data- or any other actually). It would be better to do innerText.replace(/ /g, ''); The character in / / is U+00A0 NBSP
위의 코드를 적용하여 테스트해보니 문제 없이 잘 작동하는 것 같습니다.
[경고*위의 코드를 적용한 후에 사이트에 예상치 못한 문제가 발생하지 않는지 관찰하여 사용 여부를 결정하시기 바랍니다.*]
참고로 다음과 같은 자스로도 테스트해볼 수 있습니다. p 태그와 div 태그에 대해서만 적용될 것입니다. 적절히 변경해보세요.
var elements = document.getElementsByTagName('p, div');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = text.replace(/ /g, ' ');
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText), node);
}
}
}
}
참고
https://avada.tistory.com/2436