26.10.17
0
조회 54
26.10.17
0
조회 62
26.09.29
0
조회 214
26.09.26
1
조회 168
26.09.24
0
조회 199
26.09.23
0
조회 199
26.09.19
0
조회 518
26.09.11
0
조회 155
26.09.10
0
조회 153
26.09.10
0
조회 152
26.09.10
0
조회 121
26.09.10
0
조회 105
26.09.09
1
조회 109
26.09.04
0
조회 507
26.09.03
0
조회 343
26.09.01
1
조회 143
26.08.29
0
조회 186
26.08.22
0
조회 301
26.08.20
0
조회 330
26.08.13
0
조회 322
댓글 47
검색을 하다보니 이런 댓글이 보이는데요..
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'); });
이게 잘 되는거면 여기서 자신의 사이트가 아니라면 이라는 조건을 걸어줄 수 있을까요?
윽.. 스케치북5 js 에는 저런게 없네요 ㅡㅡ;
jQuery(function() {
jQuery('.xe_content[class^=document_] a, .xe_content[class^=comment_] a').each(function() {
if(this.hostname !== window.location.hostname) {
$(this).attr('target', '_blank');
}
});
});
비교 조건이 상당히 엄격하기 때문에 현재창으로 열려야 하는 링크가 새창으로 열리는 문제는 있을 수 있지만... 반대로 새창으로 열려야 하는 링크가 현재창으로 열린다면 어딘가 스크립트 오류가 있어서 아예 저 부분이 실행되지 않는 게 아닌지 확인해 볼 필요가 있겠습니다.
근데 우리 사이트는 새창으로 안열리게 해주고 싶은데요..... 윽...
if(this.hostname !== window.location.hostname) {
이 부분을 수정해야 할 것입니다.
각각 값을 확인해봐야 할듯 하네요.
this.hostname 대신
jQuery(this).attr('href')를 쓰면 어떨까 합니다.
그리고 !==가 아닌 문자열 찾기인 indexOf로 비교하면 어떨까 하구요.
이 부분을 아래처럼 바꾸면 어떨려나요?
var url1 = jQuery(this).attr('href');
if(url1.indexOf(window.location.hostname) != -1) {
잘 되지는 않네요. 외부링크인데 현재창으로 열리네요.
도메인/abc 이런 것까지 제외하려면..
jQuery('.xe_content[class^=document_] a, .xe_content[class^=comment_] a').each(function() {
var a = jQuery(this).attr('href');
var b = /((https?:)?\/{2}(?!xetown)[\da-z\.-]+\.[a-z\.]{2,}[\w\/?&;=#%~\.-]*[\/]?)/g;
if(b.test(a)) {
$(this).attr('target', '_blank');
}
});
일케 하면 될런지.. 중간에 xetown 만 바궈서 한번 해보세요
if(b.test(a)) {
$(this).attr('target', '_blank');
} else {
$(this).attr('target', '_self ')
}
이렇게 한번..
----------- 그냥 처음 거 쓸게요... 도움 감사했습다. -------------
jQuery(function(){ jQuery('.xe_content[class^=document_] a').attr('target', '_blank'); });
jQuery(function(){ jQuery('.xe_content[class^=comment_] a').attr('target', '_blank'); });
이거로 해도 본문에 저희 사이트 링크 적을때 _self 로 하면 새창으로 안뜨는 듯 합니다.새창으로 뜨지만.. ㅋㅋ
많은 답변 감사했습니다.
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
<script type='text/javascript'>
$(document).ready(function() {
$("a[href^='http://']").each(
function(){
if(this.href.indexOf(location.hostname) == 1) {
$(this).attr('target', '_self');
}
}
);
$("a[href^='https://']").each(
function(){
if(this.href.indexOf(location.hostname) == 1) {
$(this).attr('target', '_self');
}
}
);
});
</script>
될려나요.
이 스크립트를 board.js 에 그대로 넣으면 되나요?
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
포함해서 스킨에 넣어야 하는건가요??
정 안되면 모든 링크에 Ctrl+클릭 생활화를... ㅎㅎ
var a = jQuery(this).attr('href');
var b = /(사이트이름)/g;
if(!b.test(a)) {
jQuery(this).attr('target', '_blank');
} else {
jQuery(this).attr('target', '_self');
}
});
이렇게 해보실래요? 상대경로가 들어간게 아니라면 되는 것 같긴한데..
전 외부링크를 현재창으로 열리게 하고 싶어서..
완전 감사합니다. 정말 눈물이 주룩 날 정도입니다.
잘되네요.... 너무 감사하게 잘 쓰겠습니다.
@proto
애드온 등록했습니다.
설정에 문자열을 여러개(쉽표등으로 구분...) 넣을 수 있게 하면 자신의 사이트말고 특정한 사이트도 셀프로 띄울수도 있겠습니다만... 이게 필요하지는 않을 듯 합니다. 과연 어떤 다른 외부사이트를 셀프로 띄울 필요가 있을지... 효용성이 제로에 가까운 아이디어네요 ㅋㅋ
어차피 강제로 모든 target을 바꾸는 것이라서요~
작성자가 임의로 지정해놓은 target도 바꾸는 것이라...^^
제 사이트에선 잘 되던데요....-0-
그러니까... 특정한 게시판에서만 사용하기 위해 체크한 곳이 작동은 하는데 어느곳에 체크되어 있는지 표시가 안됩니다.
php파일에 공백이 있어 그문제인줄 알고 제거하고 업로드해도 마찬가지이네요.
<addon version="0.2"> 이렇게 고치니 표시되네요. 아마 뭔가 바뀐게 0.2 형식 인가봅니다.
아무튼 해결되었다니 다행입니다...^^
제작자의 버전표시는 <version>1.7</version> 에 기입합니다.^^;
허억!!!!!
그렇군요!!!!!!!!!!!!!!!
역시 제대로 공부하고 한 것이 아니라서... 가르침 감사합니다!