티스토리에서 하이퍼 링크 새창 뜨는 것을 무효화 시키기

2007/07/09 22:29
본인 여태까지 티스토리로 작성한 포스트 내에 포함된 하이퍼 링크가 새창으로 뜨는 것에 대해서 항상 불만을 가지고 있었다. 그래서 오늘 예비군 훈련 다녀와서 날잡고 링크를 새창으로 띄우지 않도록 처리하는 방법에 대해서 신나게 확장 메뉴를 찾아보았으나...그런 메뉴가 없다는 것을 확인하였다-_-; 미투데이 분들에게 물어보았으나 충격적인 답변...

사용자 삽입 이미지

더헛?


그래서 직접 확인해 보았더니...
사용자 삽입 이미지

...

아아 XX...정말 매일 그렇게 링크를 쳐 걸어대면서 저걸 한 번 못봤었구나...

허탈하게 한숨을 쉬는 것도 잠시, 여태까지 쓴 글을 하나씩 다 뒤져가면서 새창으로 옵션 설정 되어 있는 링크를 현재창으로 다 바꾸는 짓거리도 제정신으로 할 수 있는 짓거리가 아니지만, 앞으로 글을 쓸 때 마다 링크 걸 때 마다 저걸 클릭질을 해야 한다는 뜻으로 다가오자 참 암담한 현실로 느껴졌다. 게다가 이 블로그는 본인만 쓰는 블로그가 아니라 IceBerg 친구녀석도 같이 작성하는 블로그이다. 이 친구에게 애드센스로 같이 돈벌어보자고 유혹하여 겨우 스킨스쿠버 시리즈 포스팅을 끌어낸 상태인데, 여기에 링크 걸 때 마다 새창 옵션 확인하거라...라는 추가 주문을 하면 정말 나와 연락이 끊길지도 모른다는 생각이 엄습, 그래서 그냥 이왕 막나가는 블로그(애드센스 달면서 이미 블로그의 정상적인 관리는 포기했다), 막장까지 가보자는 심정으로 방금 적용한 팁을 공개한다.

팁 제목 : 여태까지 작성된 모든 글, 그리고 앞으로 작성할 글에서도 "나는 새창으로 띄울 일이 없다" 라고 생각하는 분들께 고하는 티스토리에서 보여지는 포스트 내에 있는 하이퍼 링크가 새창으로 열리는 기능을 무효화 하는 방법

주의사항 : 뻘짓이므로 태클사절. 그리고 뻘짓이므로 함부로 따라하지 말 것.

1. 먼저 스킨 편집창을 열어서 HTML 스킨 소스를 메모장 등의 텍스트 에디터에 옮긴다.
2. 옮긴 소스에서 눈으로 찾던 찾기 명령어를 이용하던 암턴 ##_article_rep_desc_## 라고 씌여져 있는 부분을 찾아내도록 한다.
3. 보통 최근에 티스토리에 적용된 스킨들은 대부분 XHTML 을 지원하므로 주로 ##_article_rep_desc_## 라고 쓰인 텍스트의 위 아래에 <div> 가 박혀 있을 가능성이 굉장히 높다. 그 div 값에 id 항목을 추가한다. 중요한 것은 id 값은 html 문서 내에서 유일한 값이어야 하므로 가급적이면 상상력을 풍부하게 발휘해서 유니크하게 지어보도록 하자. 즉-
사용자 삽입 이미지

원본 코드가 이렇다면...


사용자 삽입 이미지

이렇게 추가하란 말임. 클릭해서 보면 다른 점이 보인다.

여기서 중요한 것은 id="거짓부렁" 과 style="display:none;" 이라는 값이 추가되었다는 것에 있다. 이렇게 수정을 한 다음에, 추가적으로 </body> 태그 바로 위에 다음과 같은 코드를 추가해 보자. </body> 태그 바로 위에 코드 추가하는 건 구글 애널리틱이나 다음 인사이드나 피드버너 프로같은 곳에서 많이 시킨 짓이므로 별도의 스크린샷은 생략...(본인 지금 컴퓨터를 쓰는데 터치패드로 마우스 질을 하려니 짜증나서 더 스크린샷 못찍겠음)

<script>
    var suck_tip = document.getElementById("위에 코드보고 따라 적은 id 안의 값");
    suck_tip.innerHTML = suck_tip.innerHTML.replace(/target=\"_blank\"/g, "");
    document.getElementById("위에 코드보고 따라 적은 id 안의 값").style.display = "block";
</script>

이렇게 하고 저장하면 끝.

원리 : 간단하게 본문에 들어있는 모든 target=" _blank" 라는 단어를 없애버린다. 앞으로 본문에 저런 단어 쓰지 말도록 하자-_- 저런 단어 쓸 일 없으리라 생각한다. 근데 혹시 이 스크립트 동작하기 전에 링크 냅따 클릭했다가 새창으로 뜨는 불상사를 방지하기 위해서 일단 display:none 스타일을 줌으로써 최초에 글이 뜰 때는 아예 글을 화면에 디스플레이 하지 않고, 처리가 완료된 다음에 display:block 을 함으로써 화면에 노출되도록 한다.

문제점 : innerHTML 이라는 속성 자체가 비표준 속성이다. 하지만 테스트 해본 결과 사파리, IE 시리즈와 파이어폭스에서 모두 잘 동작하므로(오페라에서 테스트 안해봤지만 될 것 같음) 그냥 넘어가자.

그래도 밝혀 보는 장점 : 만약에 새창으로 링크가 뜨는 것 자체를 꺼려하는 분들은 이제 하이퍼 링크 걸면서 더 이상 새창 옵션에 신경 안써도 된다.(나만 그런것 같아서 이 장점은 나만의 장점으로...;)

(누군가)개선(해줬으면하는)점 : <a> 태그 안의 target=" _blank" 만 없애는 정규식좀 만들어주세여...예비군복을 8시간동안 입고 있었더니 두뇌가 초기화 된 것 같음

QA.
Q. 어떻게 하는건지 모르겠어요.
A. 죄송...어떻게 도와드려야 할지 모르겠습니다;

Q. 공지사항에 걸린 링크도 그렇게 바꾸는 방법 알려주세요.
A. 저도 귀찮아서 안하고 있는데 어떻게 알려드리겠습니까;

Q. 시킨대로 따라했는데 스킨이 엉망이 되었어요.
A. 애드센스 100 달러 넘어서 수표 받으면 좀 나눠드릴게요.
by Lunar
category : DalKy/technology

TRACKBACK :: http://lunar.tistory.com/trackback/185

  1. BlogIcon 부엉이  댓글주소  수정/삭제  댓글쓰기 2007/07/09 23:12
    아웅~ 제대로 안알려주면 부정클릭 ㄱㄱ
    글구 전 새창으로 뜨는게 좋은데 :D



≪ 최근 글 : 1 : ... 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : ... 182 : 오래된 글 ≫