웹마스터 팁
링크새창띄우기(target=_blank) - str_replace이용법
2011.09.03 10:44
링크를 새창으로 띄우는 소스를 팁에서 보았지만,
에디터를 수정하고 복잡한 방법을 사용하시길래,
제가 사용하는 방법을 소개합니다.
DB에 기록될때와는 상관없이 표현만 바꾸어주면 간단한데요.
아래 소스 보시면 아실테지만,
'<a ' 혹은 '<A ' 를 '<a target=_blank '+
' 로 'str_replace해주는 방식입니다.
모듈을 수정한는 것이 아니라,
스킨에서 조정하는 것이라, 업데이트에 따른 부담도 없지요.
간단설명
<게시물>
리플은 새창으로 잘 되길래, 본문만 수정합니다.
스킨의 view_document.html
<!--@if($module_info->active_optional_button == 'Y')--> {$oDocument->getContent(false)} <!--@else--> {$oDocument->getContent()} <!--@end-->
위의 내용만 아래로 교체합니다.
<!--@if($module_info->active_optional_button == 'Y')--> {@ $interDocument=str_replace('<a ','<a target=_blank ',$oDocument->getContent(false)); } {@ $interDocument=str_replace('<A ','<a target=_blank ',$interDocument); } {$interDocument} <!--@else--> {@ $interDocument=str_replace('<a ','<a target=_blank ',$oDocument->getContent()); } {@ $interDocument=str_replace('<A ','<a target=_blank ',$interDocument); } {$interDocument} <!--@end-->
<쪽지>
modules/communication/skins/default
내의 수정파일 2가지
messages.html
new_message.html
{$message->content}
위의 부분을 아래와 같이 수정합니다.
{@ $interMessage=str_replace('<a ','<a target=_blank ',$message->content); } {@ $interMessage=str_replace('<A ','<a target=_blank ',$interMessage); } {$interMessage}
끝~
댓글 11
-
ezi
2011.09.03 13:11
php5 부터는 str_ireplace (대소문자 구분 안하는) 함수가 지원됩니다^^ -
인터니즈2
2011.09.03 13:27
오! 감사합니다.
위의 소스에서는 두줄이 한줄로 줄어들겠네요. ^^ -
스케이트보드
2013.08.18 14:09
게시판의 경우 XE 디폴드 스킨 사용중인데 view_document.html 파일이 없네요..ㅠㅠ
-
푸시아
2013.08.18 17:34
_read.html 아닐까요?
-
스케이트보드
2013.08.23 01:32
아쉽지만 이건 아니네요..ㅠㅠ;;;
-
엘카
2013.08.19 11:09
jQuery(function(){ jQuery('.xe_content[class^=document_] a').attr('target', '_blank'); });
-
스케이트보드
2013.08.23 01:49
정말 대박이네요^^
디폴트의 board.default.js를 수정하니 바로 해결되었습니다.
잘 몰라서 그냥 제일 아래 추가를 했더니 잘 되네요^^
다시 한번 고맙습니다^^
-
스케이트보드
2013.08.23 02:10
헌데 저는 댓글도 새창으로 안열리더라고요...ㅠㅠ
혹시 댓글에 링크도 새창으로 열리는 방법이 있는지요..?
번거롭게 해드려 죄송합니다..ㅠㅠ
-
엘카
2013.08.24 00:20
jQuery(function(){ jQuery('.xe_content a').attr('target', '_blank'); }); -
스케이트보드
2013.08.31 06:07
정말 정말 고맙습니다^^
복받으셔요. 정말로^^
즐거운 주말 되세요^^
-
스케이트보드
2013.09.07 02:00
개인 사정으로 오늘에야 적용해봤는데 모든 링크 글이 다 새창으로 열리더라고요..ㅠㅠ;;
게시판 목록에 있는 글들도 다 새창으로 열리는...
그래서 알려주신걸 보고 살짝 고치니 잘 되네요..^^
정리하면 이렇습니다. 저처럼 문제가 있으신 분들은 이렇게 해보세요^^
/www/xe/modules/board/skins/default 에서 board.default.js 파일을 아래와 같이 수정
jQuery(function(){ jQuery('.xe_content[class^=document_] a').attr('target', '_blank'); });
jQuery(function(){ jQuery('.xe_content[class^=comment_] a').attr('target', '_blank'); });