댓글에 링크를 달 수 없을까?
아래와 같이 간단한 소스로 만들수있다.
- newTab (새탭으로 열기 true,false)
- comm 값 (CSS selector와 같은 방식으로)
- whitelist 값 (자바스크립트 배열 [] 로) 변형해줘야됩니다.
3가지 값을 지정할수있고 마음대로 변경가능하다.
<html>
<head>
...
</head>
<body>
...
<script>
(function() {
var newTab=true; // 새 탭으로열기 true, false
var comm=document.querySelectorAll(".comm-con p");//이곳에 " " 는 댓글 내용이 담기는 태그를 CSS selector로 지정
var whitelist=[TistoryBlog.url.split("/")[2],TistoryBlog.tistoryUrl.split("/")[2]];
function urlfy(t,n){return t.replace(RegExp("(https?:\\\/\\\/"+n.join("\\\/?[^\\\s<\\\"']+)|(https?:\\\/\\\/")+"\\\/?[^\\\s<\\\"']+)","g"),function(t){return '<a href="'+t+'" target="'+(newTab?"_blank":"_self")+'">'+t+"</a>"})}
if(comm.length>0){
for (var i = 0; i < comm.length; i++) {
var before=comm[i].innerText;
var after=urlfy(before,whitelist);
if(before!=after){
comm[i].innerHTML=urlfy(comm[i].innerText,whitelist).split("\n").join("<br>");
}
}
}
})();
</script>
</body>
</html>
whitelist 에는 링크를 허용할 도메인을 넣는다.
내 도메인만 허용하려면
var whitelist=[TistoryBlog.url.split("/")[2],TistoryBlog.tistoryUrl.split("/")[2]]
와 같이도 지정가능하다.
모두 허용 하려면
var whitelist=[];
또는
var whitelist=["*"];
으로 가능합니다.
조금 더 자세한 설명 참고
https://hi098123-skin.tistory.com/6
'웹 프로그래밍 > HTML' 카테고리의 다른 글
IE ')'가 필요합니다. 해결하기 (0) | 2020.06.09 |
---|---|
JS) 자바스크립트에서 스타일 바꾸기 (1) | 2020.06.08 |
JS) 자바스크립트에서 " ' ` 따옴표, 억음 부호의 차이 (0) | 2020.06.08 |
CSS) 투명도 조절하고 싶을때 (rgba, opacity) (0) | 2020.05.13 |
JS) toFixed() 1.0* => 1 (소수가 0일때 없애기) (1) | 2020.02.02 |
JS) 보는데 이상이 없는데 UTF-8 처리를 못하면? (0) | 2019.12.16 |
JS window.location) hostname VS host (0) | 2019.12.06 |
HTML) Referrer 관리하기 <meta name="referrer"> (3) | 2019.11.26 |
저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)
예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.
만약, 본문 공유를 원하신다면 링크 공유를 해주세요
저작권 정책 확인하기링크 공유하기