안녕하세요 inureyes님,

전 태터쪽이 개발되면 티스토리에서는 그걸 그대로 가져가 쓰는 건가보다 하고 있었습니다만 그건 아닌가보군요. ^^

근데 이 문제는 태터도 마찬가집니다. (누차 얘기하지만, 태터가 잘못이라는 게 아니라 ^^; IE에서만 문제가 생긴다는 얘기)

혹시 이번 새 버전은 다른가 해서 1.1.2.1를 설치해보았는데요,

http://gypark.pe.kr/cgi-bin/tt/1

위에 가 보시면

* 본문에 한글이 바로 들어간 링크 - 잘 됨
* 본문에 위키페디아 링크 - 잘 됨
* 본문 위키페디아 링크 옆에 새창으로 띄우기 플러그인 - 잘 됨.
** 이 플러그인도 새 창으로 띄우기를 할 때 자바스크립트를 사용하기는 마찬가지이지만, html 소스를 보니까 onclick="window.open('http://ko.wikipedia.org/wiki/%ED%83%9C%ED%84%B0%ED%88%B4%EC%A6%88'); 이렇게 window.open()의 인자로 주소를 다 적어 주었더군요. 역시 문제는 window.open이 아니라 this.href 를 IE가 처리할 때 있는 듯 합니다.

이렇게 본문은 잘 되지만
* 트랙백에 Subject 필드에 있는 주소 - 깨짐
* 댓글 중에 위키페디아 링크 - 깨짐

이 두 가지는 onclick="window.open(this.href); 를 통해서 새 창으로 띄우기 때문에 티스토리와 마찬가지로 문제가 됩니다.

안녕하세요,

열심히 개발하시는 분들께 괜히 귀찮게 하는 것 같아 죄송합니다만...

하다못해 "IE의 문제이니 수정할 계획이 없다"라도 좋으니 이 문제는 어떻게 처리하실 지 알 수 없을까요? 일주일째 계속 들락거리는데 아무런 언급이 없어서...

안녕하십니까,

사실은 티스토리 버그리포트 블로그에 글을 올렸고, "확인 후 다시 답변주겠다"는 답글도 받은 상태입니다만, TNF의 RSS를 구독 중이던 터라 조만간 1.1.2가 나올 모양이길래 그 전에 해결되면 좋겠다는 심정에 여기에도 글을 올립니다.

(이거 태터 개발자와는 전혀 관계없는 사람이 이렇게 가입해서 글을 써도 되는 건지 몰라서 조심스럽습니다만... 실례를 범한 거라면 정말 죄송합니다)

태터나 티스토리가
* 트랙백을 받을 때 URL(그러니까 트랙백을 보낸 사람의 포스트 주소)을 링크할 때,
* 댓글란에 URL에 해당하는 문자열이 있을 때 그걸 자동으로 링크할 때,

트랙백은 window.open(this.href) 의 형태로, 댓글은 다른 함수를 부르지만 결과적으로 같은 형태로, 자바스크립트를 써서 새창으로 띄우는데, 이 때 URL에 "%-인코딩된 스트링"이면서, 하필이면(?) 그 인코딩된 시퀀스가 UTF-8 스트링인 경우에는 문제가 됩니다.

예를 들어, 위키페디아의 "태터툴즈"페이지의 주소는 아래와 같습니다:
http://ko.wikipedia.org/wiki/%ED%83%9C% … 4%EC%A6%88

이걸
* 본문에 링크하면: 그냥 a href= 라서 잘 됩니다.
* 본문에 도구모음에서 "새 창으로"를 선택하여 링크하면, target="_blank"를 쓰는 형태라도 역시 잘 됩니다.
* 댓글에 링크하면... 해 보시면 아시겠지만 http://ko.wikipedia.org/wiki/%C3%8D%C2% … 2%A6%C2%88 라는 페이지로 갑니다. 당연히 그런 페이지가 없다고 나옵니다.
* 트랙백으로 받는 경우도 댓글과 마찬가지입니다.
* 댓글,트랙백 모두, 좌클릭이 아니라 우클릭해서 "열기", "새 창으로 열기" 등을 할 때는 자바스크립트를 거치지 않으므로 잘 됩니다.
* 그리고 이 문제는, IE에서만 생깁니다 -_-;;; FF는 괜찮았습니다. 즉 태터나 티스토리의 버그는 사실 아닙니다.

그나마 댓글에는,
http://ko.wikipedia.org/wiki/태터툴즈
라고 써주면 됩니다. 근데 이건 해당 태터(또는 티스토리)가 UTF-8 인코딩을 쓰고 있기 때문에 다행히 되는 것이지, EUC-KR을 쓰는 곳에 저렇게 링크를 걸면 "태터툴즈" 문자열이 EUC-KR형태로 전달되니까 위키페디아 쪽에서 못 찾습니다.

댓글은 사람이 적으니까 그나마 저렇게라도 할 수 있지만, 트랙백을 보내는 사이트 입장에서는, 이 트랙백을 받아줄 상대 사이트가 무슨 인코딩을 쓰는지, 인코딩이 다를 경우 변환을 해 줄 것인지를 알 수 없는 상황이기 때문에 %-인코딩한게 최선이라고 봅니다. 근데 그렇게 %-인코딩을 했더니만 저렇게 잘못 해석해서 띄우면 난감하지요.

저렇게 잘못 변환하는 게 window.open()이냐 this.href냐의 문제가 있는데, 제가 보기에는 this.href가 범인인 것 같습니다. window.open의 인자로 %-인코딩된 스트링을 바로 넣어보면 제대로 되거든요.

제가 웹을 검색해서 주워듣기로는, target이라는 속성이 표준에서 빠졌다는 것과, 일반 브라우저는 새 창으로 띄우고, 시각 장애인용 시스템에서는 자바스크립트를 무시해서 현재창으로 띄우기 위함이다...라는 것 같습니다만, 그럼 링크는 그냥 평범하게 현재 창으로 뜨게 하고, 링크 옆에 새창으로 띄우기 아이콘 같은 걸 추가하는 형태는 어떨런지요.

비록 브라우저의 문제이긴 하지만, IE가 고쳐지길 기대하는 건 요원할 것 같고 해서, 태터/티스토리 쪽에서 다른 방법을 쓸 수는 없을까 하는 바램으로 글 남겼습니다.

좋은 하루 되세요~

P.S.

아래 주소에 제가 첨에 증상을 발견하고 이런 저런 상황에서 테스트한 게 남아 있습니다. 참고가 될까 해서 남깁니다.
http://raymundo.tistory.com/5