pfaffman
(Jay Pfaffman)
12월 22, 2022, 11:13오후
2
확인할 수 있습니다. 사용자가 문제를 일으키려는 것으로 보이는 경계 사례(edge case)인 것 같아, 수정할 가치가 있는지 확신은 없습니다.
1개의 좋아요
수정하기가 까다로울 것 같아서?
저는 자주 클릭하고, 자주 텍스트를 선택합니다.
그래서 이 버그가 정말 자주 신경 쓰이죠.
이 버그에 대해 꽤 오래전에 언급은 했지만, 이번만큼 잘 설명하지는 않았습니다.
pfaffman
(Jay Pfaffman)
12월 24, 2022, 9:40오전
4
jesus2099:
이것은 나에게 매우 자주 문제를 일으킵니다.
그건 정말 짜증나네요.
PR을 제출할 능력이 없다면(나도 그런 것 같네요), 컨트롤 키를 누른 채로 클릭하여 새 탭에서 여는 방식을 사용하면 됩니다. 자동화하기도 어렵지 않고, 새 탭에서 링크를 열지 않는 사이트에서도 문제를 해결해 줄 수 있습니다.
1개의 좋아요
Ctrl+클릭을 사용하겠습니다만, 모든 외부 링크를 새 탭에서 열기 라는 좋은 옵션이 있습니다.
하지만 이 옵션이 실제로 하는 일은 임의의 외부 링크를 새 탭에서 열기 입니다.
재현 방법을 찾아내는 데 몇 달, 아니 몇 년이 걸렸습니다.
저에게는 정말로 무작위적으로 느껴졌습니다.
일관된 동작을 위해 이 옵션을 제거하는 것은 어떨까요?
단순한 CSS 문제 PR을 위해 Discourse 개발 환경을 설정하려고 했던 기억이 납니다.
하지만 정확히 기억나지는 않는데, 제 PC가 너무 오래되어 모든 요구 사항을 설치하거나 실행할 수 없어서 포기한 것 같습니다.
1개의 좋아요
이전에 Discourse 개발 환경을 설치하려는 시도가 실패했던 글 을 다시 찾았습니다.
제 개인용 Linux PC는 너무 오래되었고, 업무용 Windows 노트북에는 하이퍼스레딩 이 활성화되어 있지 않았습니다.
새로운 업무용 노트북에는 이제 하이퍼스레딩 *이 apparently 활성화되어 있는 것 같으니, 관리자 권한 없이 새로운 안내 를 따라갈 수 있는지 확인해 보겠습니다.
* wmic CPU Get NumberOfCores,NumberOfLogicalProcessors 명령을 실행하면 물리 코어보다 논리 코어가 더 많은 것으로 표시됩니다.
Don
12월 28, 2022, 8:00오후
7
안녕하세요,
CSS로 수정할 수 있을 것 같습니다 .
.cooked a {
@include user-select(text);
}
도움이 되길 바랍니다. 아직 제대로 테스트하지는 않았지만 잘 동작하는 것 같습니다.
수정: user-select: text는 링크에 추가되어야 합니다. .cooked의 선택된 텍스트뿐만 아니라 사이트 전체의 선택된 텍스트가 영향을 받기 때문입니다. 코드를 변경했습니다.
6개의 좋아요
Canapin
(Coin-coin le Canapin)
12월 28, 2022, 8:40오후
8
저한테는 마법처럼 보여요. 어떻게 작동하는지 궁금한데, 이 트릭을 설명해 주실 수 있나요?
2개의 좋아요
sam
(Sam Saffron)
12월 29, 2022, 1:41오전
9
훌륭한 탐구였어요, Don. PR을 제출해 보시겠어요?
6개의 좋아요
Don
12월 29, 2022, 12:49오후
10
샘, 감사합니다. 제출하기 전에 더 자세히 테스트해 봤는데, 안타깝게도 이것만으로는 부족합니다. 이 솔루션은 크롬에서만 작동합니다.
5개의 좋아요
버그를 일으키는 코드 조각입니다 (app/assets/javascripts/discourse/app/lib/click-track.js에서 가져옴)
// Cancel click if triggered as part of selection.
const selection = window.getSelection();
if (selection.type === "Range" || selection.rangeCount > 0) {
if (selectedText() !== "") {
return true;
}
}
이 코드를 제거하면 문제가 해결되며, 테스트가 깨지는 것처럼 보이지 않습니다 (어떤 이유에서인지 변경 전후로 일부 테스트가 실패했지만, 새로운 실패는 발생하지 않은 것 같습니다).
그래서 이 코드가 실제로 유용한 역할을 하는지 궁금합니다. 이 코드가 분명히 수행하지 않는 것이 하나 있는데, 바로 코드가 명시한 동작입니다. 만약 코드가 명시한 대로 동작했다면, 버그 보고자가 ‘선택 + 클릭’ 시 링크를 전혀 따르지 않았을 텐데, 그것이 그의 불만은 아니었으니까요.
이 코드가 달성하려는 목적이 무엇인지 공유해 주실 수 있나요?
1개의 좋아요
아마도 텍스트를 선택하여 인용하거나 복사할 때 링크가 새 탭에서 열리지 않도록 방지하기 위해 그렇게 만든 것일까요?
발견하신 코드가 비활성화된 상태에서 “모든 외부 링크를 새 탭에서 열기” 옵션이 체크되어 있을 때,
링크가 포함된 텍스트를 선택해 보시겠어요? (마우스 버튼을 누른 뒤 드래그하고, 마우스 버튼을 놓는 방식) 링크가 열리지 않는지 확인해 보세요.
링크를 완전히 감싸는 선택도 해보고, 링크 중간에서 끝나는 선택도 해보시는 게 좋겠습니다.
선택은 항상 텍스트를 선택하는 것만 되어야 하며, 링크를 열어서는 안 됩니다.
예, 이러한 선택은 링크를 따르거나 새 탭에서 열지 않고 예상대로 작동합니다.
1개의 좋아요
sam
(Sam Saffron)
1월 10, 2023, 4:13오전
14
특정 브라우저에 대한 우회 방법이 있었던 것 같은데, Safari/Firefox/Chrome에서 선택을 시도해 보며 어떤 브라우저에서 문제가 발생하는지 확인해 볼 수 있을까요?
1개의 좋아요
Firefox와 Chrome에서는 작동합니다. Ubuntu에서 Safari를 어떻게 테스트해야 할까요?
1개의 좋아요
개발 서버가 Wi-Fi를 통해 접근 가능해서 스마트폰으로도 테스트할 수 있나요?
터치스크린의 손가락 드래그 이벤트가 링크를 여는 것을 트리거하고 있을 수 있습니다.
이 스마트폰 브라우저(Firefox, Chromium 기반 또는 Safari)를 테스트 대상 브라우저 목록에 추가할 수 있습니다.
그리고, 아, 이 버그에 대한 여러분의 작업에 정말 감사드립니다!!
이 취소 코드에 대한 이유를 찾았네요:
master ← lidlanca:fix-link-release
merged 03:35AM - 19 Sep 14 UTC
Prevent a click if the user select content in a topic and release the mouse over… a link.
https://meta.discourse.org/t/selecting-a-link-results-in-it-being-opened/14846
사용자가 주제에서 내용을 선택한 상태에서 링크 위에 마우스를 놓았을 때 클릭을 방지합니다.
https://meta.discourse.org/t/selecting-a-link-results-in-it-being-opened/14846
[삭제된 주제]
흥미로운 댓글 :
저는 테스트를 위해 Windows 플랫폼에만 접근 권한이 있습니다.
이 수정 사항은 파일을 통째로 콘솔에 붙여넣을 수 있으므로 쉽게 테스트할 수 있습니다.
@sam 주제 페이지를 로드한 후 콘솔에 붙여넣어야 할 파일이 무엇인지 알고 계신가요?
@Aleksey_Bogdanov 그 파일을 주시면, 저는 Windows Vivaldi, Firefox, Android 9 Kiwi 브라우저 콘솔에 붙여넣을 수 있고, 당신은 iOS, Mac OS Safari에 붙여넣을 수 있습니다.
더 이상 그렇게 작동하지 않는다고 생각합니다.
1개의 좋아요
안드로이드에서 크롬과 파이어폭스에는 문제가 발견되지 않았지만, 파이어폭스에서 텍스트를 선택하는 데는 여전히 어려움을 겪고 있습니다.
1개의 좋아요