새 탭에서 열리도록 사용자 지정 사이드바 링크 설정

커스텀 섹션 링크를 _blank 속성을 사용하여 새 탭에서 열 수 있나요? 이 기능을 제공하는 테마 컴포넌트가 많이 있습니다.

3개의 좋아요

우리는 어느 시점에 사이드바의 외부 링크가 새 탭에서 열릴지에 대해 논의한 적이 있습니다. 하지만 결국 사용자 설정을 존중하기로 결정했습니다.

귀하의 사이트에서 사용자 설정을 무시하고 링크가 새 탭에서 열리도록 강제하는 것이 더 나은 사례가 있다면, 두세 가지만 공유해 주시겠습니까?

2개의 좋아요

네. 아마도 우리의 접근 방식이 단순히 다를 뿐인 것 같습니다. 링크가 외부 링크인 경우, 사용자의 브라우저를 새 탭으로 전환하는 것이 훨씬 정중한 방법이라고 진심으로 생각합니다. 이렇게 하면 사용자가 포럼 페이지에서 경험하고 있거나 경험했던 흐름이 끊기는 것을 방지할 수 있습니다.

저희 포럼은 매우 활발하게 운영되고 있어, 사용자가 링크를 따라 웹사이트를 완전히 떠나는 일이 발생하면用户体验이 끊기는 것이 적절하지 않을 수 있다고 생각합니다. 해당 링크가 텔레그램 채널로 연결되는 경우라면 더더욱 그렇습니다.

결론적으로, 저는 외부 링크가 기본적으로 _blank 속성으로 열리도록 하는 것을 제안하지 않습니다. 대신, 디스코urs 관리자가 이 특정 구성 요소/기능에서 링크가 어떻게 열릴 수 있는지를 제어할 수 있는 기능을 제공해 주시기를 제안합니다.

3개의 좋아요

임시 해결책: 항목을 마우스 오른쪽 버튼으로 클릭하면 새 탭에서 열기 옵션이 표시됩니다.

동의합니다. 링크가 새 탭에서 열리면 진행 중이던 작업이 중단되지 않습니다.

저도 이 의견에 동의하는 편입니다. 위에서 언급한 텔레그램 채널의 시나리오처럼, 관리자가 만든 사용자 지정 링크의 경우 사용자 설정을 무시하는 것이 이상적인 경우가 분명히 있을 것입니다. 테마 구성 요소에서는 _blank를 자주 지정하므로, 왜 이 옵션이 사용자 지정 사이드바 설정 모달의 일부로 여기에 포함되지 않는지 이해가 되지 않습니다(공간 부족으로 여백이 없는 경우라면 모를까).

실제로 제 포럼에도 관리자 사용자 지정 사이드바 링크가 있으며, 링크에 대해서는 사용자 설정을 무시하고 싶은 경향이 있습니다.

3개의 좋아요

사용자가 링크를 같은 창에서 열기를 선호한다고 명확히 표현한 경우, 사용자가 명시적으로 지시한 대로 하지 않는 것이 더 예의라고 생각하시나요?

스크린리더를 사용하는 사용자들은 예상치 못한 상황에서 새 탭으로 열리면 가장 큰 불편을 겪습니다. 그래서 일반적으로 링크를 새 탭으로 열도록 강제로 바꾸지 않는 것이 권장됩니다(당신과 제가 선호하는 방식이더라도요).

사용자 기본 설정을 새 탭에서 열도록 변경하고, 이 설정을 모든 사용자에게 적용할 수도 있습니다. 이렇게 하면 사용자 선호도를 침해하지 않으면서도 웹사이트가 더 예의 바르게 작동할 수 있습니다.

5개의 좋아요

정말 좋은 지적입니다.

6개의 좋아요

실제로 스크린 리더를 사용하는 사용자로서(일부 테마 구성 요소가 스크린 리더 사용자에게 초래하는 다양한 문제들까지 포함하여) 확인하건대, 새 탭을 강제로 여는 것은 일반적으로 좋지 않은 생각입니다.

6개의 좋아요

사건 웹사이트로 연결되는 사이드바의 사용자 지정 링크가 새 탭으로 열리지 않도록 비활성화하는 방법이 있을까요? 다른 웹사이트에도 Discourse로 돌아가는 링크가 있어 현재 원치 않는 탭이 여러 개 열리고 있습니다.

해당 외부 링크만 _self로 열리기를 원합니다.

감사합니다

1개의 좋아요

일반적으로 모든 링크는 _self로 열려야 합니다. 사용자가 언제 어떤 링크를 새 탭 또는 새 창으로 열어야 하는지 지정합니다.

1개의 좋아요

관리자 - 설정에서 다음 항목이 비활성화되어 있는지 확인하세요:

로그인한 사용자는 인터페이스 탭의 사용자 설정에서 관리자 설정을 덮어쓸 수 있습니다:

3개의 좋아요

질문이 사이트의 특정 링크에 대해 어떻게 설정하는지에 대한 것이었던 것 같습니다. 해당 링크는 포럼으로 돌아가는 링크가 있죠. 관리자 설정을 변경하면 모든 링크의 동작이 바뀌게 되는 거 아닌가요?

3개의 좋아요

음, 그럴 수도 있겠네요. 사용자 설정을 오버라이드하려는 건가요? 별도 탭/창에서 링크에 영향을 미치는 설정은 제가 아는 한 그것뿐입니다.

2개의 좋아요

네, 외부 사이트 전체에 대해 target _blank를 전역적으로 비활성화하는 건 원하지 않습니다. 이 단일 메뉴 항목에 대해서만 비활성화하고 싶습니다.

설명해 주셔서 감사합니다.

2개의 좋아요

Custom Header Links 을 사용하면 추가되는 링크의 대상(target)을 선택할 수 있습니다. 이 정보가 도움이 될 수도 있습니다

https://github.com/discourse/discourse-custom-header-links/blob/main/javascripts/discourse/components/custom-header-links.hbs#L18

4개의 좋아요

감사합니다. 그럼 사이드바에 이걸 사용하라는 건가요?

1개의 좋아요

힌트입니다. 제가 가진 건 이게 전부예요. 솔직히 사이드바를 수정하는 건 확실하지 않아요.

사이드바에 아직 플러그인 아웃렛이 없는 것 같아서 (!?), 수정하고 싶은 요소를 찾으려면 꽤 기발한 자바스크립트가 필요할 수도 있어요. 이것 같은 거요, 아마도.

4개의 좋아요

이것은 의도된 것입니다. 이상적으로는 API를 사용하여 사이드바를 확장해야 합니다… 이렇게 하면 여기에 추가된 사용자 정의 링크/섹션을 유지하는 데 도움이 됩니다.

현재 외부 링크 대상은 사용자 설정 external_links_in_new_tab에 따라 전부 또는 전무(all or nothing)인 것으로 보입니다… 따라서 API를 통해 사용자 정의 섹션/링크를 추가하더라도 특정 링크의 대상(target)을 변경하는 방법이 없습니다. 이 옵션을 추가하는 것은 가능할 것입니다… 다만 역사적으로 우리는 링크가 어떻게 열릴지에 대한 사용자 선호를 존중하는 방향으로 기울어 왔습니다.

5개의 좋아요

그렇군요. 그 공지를 놓쳤던 것 같습니다. 하지만 좀 더 자세히 살펴보니 plugin-api.js에서 addSidebarPanel과 addSidebarSection을 볼 수 있는데, 후자만 포스트로 검색 결과가 나오며 그것도 how-to(사용법) 문서와는 거리가 멉니다. 하지만 여기 이 코드가 있습니다:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.js#L2306-2310

5개의 좋아요

맞습니다. 저는 방문자들이 자주 왕래하는 상위 웹사이트 링크를 새 탭/창에서 열지 않는 것을 선호합니다. 아니면, 정확히 말하면 왕복하는 거죠. :joy: