0.2 개선사항

링크에 #이 포함된 경우 새창을 띄우지 않는 옵션을 추가했습니다.

다만 해당 옵션을 사용안함으로 선택하면 링크에 지정한 url이 없더라도 새창으로 안뜹니다.

 

------------------------------------------

 

애드온 버전 수정했습니다.

 

------------------------------------------

 

https://xetown.com/qna/218339

 

이 게시물에 달린 proto님의 코드를 애드온으로 만든 것입니다.

 

애드온 설정에서 도메인의 일부분을 넣으면 됩니다.

 

그럼 본문과 코멘트의 링크에서 해당 문자열이 있으면 target을 _self로 하고

문자열이 없으면 _blank로 바꿉니다.

 

문제점이나 개선사항은 코멘트로 남겨주세요.

  • ?
    꼭 필요했던 자료네요. 고맙게 사용하겠습니다.
  • ? profile
    감사합니다^^
    중요코드는 프로토님이 만드신거에요~^^
  • profile
    그냥 XE 링크는 포기하다 싶이 하고 있었는데 감사합니다. ㅎ
    @프로토님 @웹지기님 @Double'U'모두 감사드립니다.
  • profile profile
    전 숟가락만 얹었어요!
  • ?
    한가지 궁금한게 있습니다.

    전 링크가 현재창에서 열리는거 자체가 불편해서 모든 링크가 새창으로 열리도록 board.js를 수정해서 사용하고 있는데요

    이 애드온은 외부링크만 새창으로 열리나요 아니면 내부링크 관계없이 모든 링크를 새창으로 열리게 할 수 있나요?
  • ? profile
    애드온 설정에서 입력한 문자열이 포함되지 않은 링크는 모두 새창으로 뜹니다.
    그러니 문자열을 dsalkjfadsjdsfaoijfeoijwekladfsjlkjfdsoijsdf 이런식으로 넣어두면 모두 새창으로 뜨겠죠?
  • profile
    감사합니다.
  • profile profile
    감사합니다.^^
  • profile
    오오, 잘 사용하겠습니다!
  • profile profile
    감사합니다.^^
  • profile profile
    요긴하게 잘 쓰고 있습니다. ^^ 다만, 한 가지 개선 요망 사항이 있어서 다시 댓글 남깁니다.
    책갈피라고 하나요? div 태그 등에 id="00"로 지정해놓으면, 해당 문서 주소 끝에 #00이라고 쳤을 때 그 지점으로 이동하지 않습니까.
    그런 식으로 href="#00"로 된 링크를 달아봤습니다. 근데, 해당 링크를 클릭해서 id="00" 지점으로 이동하면 좋겠는데, 이걸 외부 링크로 인식해서 새창으로 띄우더라구요.
    혹시 가능하시다면 이 부분 개선해주실 수 있을까요?
  • profile profile
    불완전하지만 그럭저럭 수정해봤습니다~
  • profile profile
    오옷, 감사합니다~!
  • ?
    감사합니다 :)
  • profile
    감사히 잘 사용하겠습니다.
  • ?
    잘쓰겠습니다.
  • ?
    감사합니다
  • ?
    스케치북5 최신글 위젯을 사용하고있습니다. 해당애드온은 페이지만 적용이 되는건가요?
    최신글 위젯에서 새창으로 바꿔도 현재창에 뜨길래 이 애드온을 받아 설치했는데 적용이 안되네요..?
  • ? profile
    위젯에서는 안될 것입니다.
    동작하는 조건이 $called_position == 'before_display_content' 이라서요.
  • profile
    오 감사합니다.
    저 질문에 답변다신것보고 타고들어왔어요.

    복잡한 코드볼필요없이이 애드온만 설치하면 될까요?

    하고싶은것은
    현재창에서 열리게 하고싶습니다.
    가능하면 모든 링크가..
  • profile profile
    이건 반대의 동작을 하는 것입니다.
    게시물 본문의 외부링크를 새창으로 열게하는 것이죠.
    애드온을 수정하거나 원글의 댓글을 참고해서 반대로 동작하게 하시면 됩니다.
  • profile profile
    네 일단 코드 수정이나 그런 방식 보다..

    본문/댓글 키워드 검색해서 self로 변경해줘서 현재창으로 열리게 해준다고 적혀있으니,
    저희는 거의 naver 에서 링크만 하고 있어서
    naver 를 설정해두면 해당 링크들은 모두 현재창으로 열리겠쬬?
  • profile profile
    .. 안되네요 ㅜ.ㅜ
    https://jdsinside.co.kr/free2/345383
    이 링크입니다...
    addons 에 설치하였고,
    설정에 가서
    문자열 : naver
    링크# 들어간 경우 새창 띄우기 : 사용안함
    선택한 모듈에서 사용 : free 2

    당연히 애드온 메뉴에서 PC/mobile 설정 체크도 완료하였습니다...

    심지어 ext_link_new_window.addon.php 에 들어가서 blank 되있는거 모두 self 로 변경해도 동일현상이네요;;;
    애드온자체가 안먹히는게 아닐지..

    0.2 버전 설치하였구요
    했는데 여전히 새창으로 열리네요.
    ㅜ.ㅜ 어떻게 해야할까요..
  • profile profile
    이 애드온은 반대의 동작을 하는 것입니다.
    외부 링크를 새창을 띄우도록 해주는 것입니다.
    이 동작 자체를 반대로 바꿔줘야 한다는 거죠.
    애드온을 수정해서 모든 링크가 _self가 되도록 해야 하는 것입니다.
  • profile profile
    네 . 혹시 애드온 어느 파일/코드 부분을 수정하면될지 알 수 있을까요
  • profile
    https://jdsinside.co.kr/free2/345564
    이글 기준으로 테스트했고, 모바일에서 테스트 했습니다.
    var b = /(".$inurl.")/g;
    if(!b.test(a)) {
    jQuery(this).attr('target', '_self');
    이부분과 밑에 있는 비슷한 부분에 대해서 self로 수정을했습니다(원래 blank)
    애드온 설정서 pc/모바일 둘다 설정했구요.
    캐시파일 재생성도 하고 보았고, 폰도 다른폰으로 해보기도 하였습니다.
    애드온 보다 상위의 어떤 xe 다른파일이 더 우선하는게 있어서 그런것일까요... 답답하네요..

    지정하지 않은 문자열... 입력 옵션에
    naver를 넣고도 해보고 뺴고도 해보고 다해보았습니다.
  • profile profile
    죄송합니다 ㅜ.ㅜ 시간되실때 확인 부탁드려도 될지요..
  • profile profile
    문자열에 자기 사이트 도메인 일부를 넣고, #옵션은 사용하지 않음으로 하고
    소스코드상에서 26줄과 42줄의 _blank를 _self로 바꾸면 될것 같은데요.
    일단 문자열에 글자가 들어가 있어야 동작을 하니 필요하구요,
    자바스크립트는 해당 문자열이 링크에 포함되어있지 않으면 새창으로, 아니면 자신창으로 링크를 바꿔주는 것이니
    모두 자신창으로 바뀌어라! 라고 하면 되겠죠.
  • profile profile
    음.. 왜 자기사이트 도메인 일부를 넣어야 하는걸까요..??
  • profile
    사실 문자열에 상관없이..

    26/28, 42/44 줄을 모두 _self로 바꾼다면..
    당연히 self밖에 남지 않으므로 새창이 아예 안열려야 하는거 아닐까요 모든 케이스를 커버하므로..
    그럼에 도 안되는건 애드온을 넘어서는 권한이 있거나하는걸로 밖에 생각이 안되서요 ㅜ.ㅜ
    아니면 애드온에 오류가..
  • profile profile
    17줄 보세요.
  • profile profile
    코드 상의 php와 자바스크립트의 동작을 하나 하나 이해해보세요.
    코드에 특별히 어려운 함수가 사용된 것도 아니니까요.
    php if문
    자바스크립트 if문, test함수,
    jquery의 each함수
    이것만 이해하고 동작을 이해하면 원하는 데로 바꾸면 됩니다.

    직접 하기 어려우시면 작업의뢰를 하세요.
  • profile profile
    네 일단 17줄에는 if($inurl) { 이렇게 되어있어서 의미가 있는지 잘모르겠습니다.
    또한.. 제가 잘모르는것일 수도 있지만 모든 케이스의 _blank를 _self로 변경했는데도 현상이 바뀌지 않는것은 어떤 사유일까요.
    여러부분의 조건문, 케이스에서 다른 구조를 가지고 있다는것은 알고 있습니다. 다만 26/28, 42/44 항 모두 self로 바꾸었는데 그대로 진행이되는것은 다른 설정이 잘못된것일까요?

    말씀하신대로 아래와 같이 해도 되지 않아서 여쭤보았어요.
    "
    문자열에 자기 사이트 도메인 일부를 넣고, #옵션은 사용하지 않음으로 하고
    소스코드상에서 26줄과 42줄의 _blank를 _self로 바꾸면 될것 같은데요.
    일단 문자열에 글자가 들어가 있어야 동작을 하니 필요하구요,
    자바스크립트는 해당 문자열이 링크에 포함되어있지 않으면 새창으로, 아니면 자신창으로 링크를 바꿔주는 것이니
    모두 자신창으로 바뀌어라! 라고 하면 되겠죠.
    "
  • profile profile
    일단 $inurl의 값이 있어야 동작을 합니다.
    그래서 문자열이 값을 넣으라는 것입니다.

    링크를 바꿔주는 것은 jquery로 동작하는 것이므로 그 부분을 살펴봐야죠.
    each문이 동작하는지를 console.log를 추가해서 찍어보세요.
    동작하지 않는 다면 each의 조건이 되는 class명이 다른 것일수도 있습니다.
  • profile
    감사합니다. 잘 쓰겠습니다.