CTRL을 클릭하면 새 탭에서 일부 링크가 열리지 않는 이유는 무엇입니까?


18

탐색하는 동안 링크를 ctrl- 클릭하여 새 탭에서 열 수 있습니다. 그러나 새 탭을 여는 대신 Ctrl 키를 누르지 않고 정상적으로 클릭 한 것처럼 현재 탭에서 클릭하여 탐색합니다. 나는 ctrl 키를 완전히 누른 상태에서 키보드 또는 마우스에 결함이 없다고 확신합니다.

때때로 링크와 함께 새 탭이 열리지 만 현재 탭도 링크를 동시에 탐색합니다.


3
아마도 "링크"가 onclickCtrl + 클릭으로 혼란 스러울 수 있는 작업을 사용하고 있다는 의미에서 실제 링크가 아닐 수도 있습니다. 구체적인 예를 들어 줄 수 있습니까? meta.stackoverflow.com/questions/276138/...
imtheman

@imtheman 그러나 요점은, 적어도 내가 본 예제에서는 그렇지 않은 것 같습니다. 나는 항상 링크 위에 마우스를 올려 놓아 상태 표시 줄에 URL이 표시되는지 확인하기 때문에 이것을 알고 있습니다. 예를 들면 다음과 같습니다. nationaljournal.com/white-house/… 왼쪽 열 / 바에서 다른 스토리에 대한 링크는 자체 URL로 표시되지만 소스에서 해당 위치로 이동하여 확인하지만 Ctrl 키를 클릭해도 'Ctrl 키를 누르고 있지 않은 것처럼 작동하지 않습니다.
Coldblackice

해당 사이트의 소스 코드를 보면 다음 링크 중 하나에 해당하는 것을 볼 수 있습니다.<a class="primary" href="/superuser//congress" onclick="var x=&quot;.tl(&quot;;s_objectID=&quot;http://www.nationaljournal.com/congress_1&quot;;return this.s_oc?this.s_oc(e):true">Congress</a>
imtheman

1
href속성 이 있지만 onclick 이벤트로 덮어 씁니다.
imtheman

1
이 문제를 해결하기 위해 Firefox 애드온을 작성했습니다. github.com/danielnixon/link-fixer
danielnixon

답변:


8

배후의 JavaScript

이러한 웹 페이지 개발자가 JavaScript로 마우스 클릭을 가로 채 인터셉터 내에서 비동기 네트워크 요청을 수행하여 잠재적으로 클릭을 추적 할 때 발생합니다. 비동기 네트워크 호출이 반환되면 JS는 다음과 같은 것을 사용하여 프로그래밍 방식으로 리디렉션합니다.window.location.href = url;

이 프로그래밍 방식 리디렉션은 Ctrl( CmdMac에서) 누른 상태에서도 항상 같은 탭에 페이지를로드합니다 .

MiddleMouse를 사용하여 재정의

마우스의 가운데 버튼을 클릭하거나 상황에 맞는 메뉴에서 '새 탭에서 열기'를 선택 하면 가로채는 JavaScript 코드가 완전히 무시되고 JavaScript 코드가 전혀없는 것처럼 링크가 열립니다.


이것은 완전히 정확하지 않습니다. 일부 코드 디자인에서는 페이지를 새 탭에서 열도록하는 대체 트리거를 허용하지만 다른 코드 디자인에서는이를 방지합니다. 이는 일반적인 "페이지"가없고 버튼을 클릭 할 때 페이지를 생성하는 동적 콘텐츠가있는 사이트에서 더 일반적입니다. 이 경우 페이지에 실제 "링크"가 아니라 응용 프로그램과 같이 동작을 트리거하는 버튼이 있습니다.
music2myear

6

이 문제를 해결하기 위해 link-fixer 라는 Firefox 추가 기능을 작성했습니다 . addons.mozilla.org에서 설치할 수 있습니다 . Firefox 48.0 이상이 필요합니다.

자신을 인용 :

링크를 클릭 할 때 ctrl + click, shift + click 및 cmd + click의 기본 동작은 새 탭 또는 새 창에서 링크를 여는 것입니다. 부주의 한 개발자가 때때로이 동작을 깨뜨립니다. 이 애드온은 기본 동작을 복원하여 모디파이어 키가 항상 존중되도록합니다.

일단 설치되면 더 이상 할 일이 없습니다. 링크를 ctrl + 클릭하면 새 탭에서 열립니다. 또한 두 번째 단락에서 설명하는 문제의 변형을 해결합니다.


1
안녕하세요 Daniel,이 문제를 해결하기 위해 뭔가를 썼지 만 , 답변에서 소프트웨어를 추천하는 방법 , 특히 굵게 표시된 부분을 업데이트하고 답변을 업데이트 하는 방법을 읽을 수 있습니까? 감사합니다 :)
bertieb

3

이 링크를 예로 들어 보겠습니다.

<a href="test.php" onclick="someFunction(this); return false;">Test</a>

href속성은,이 경우, 가독성을위한 의사 링크 (그것은 또한 자바 스크립트가 무효 인 경우 링크도 작업 할 수 있습니다)을 만드는 것입니다. 그 이유는 onclick속성이 항상 먼저 실행 되기 때문 입니다. Google과 같은 대규모 사이트는 클릭 수를 추적하고 사용자가 멀웨어 사이트를 방문하지 못하도록하기 위해이 작업을 수행합니다. 이로 인해 어떤 이유로 Ctrl+ 클릭이 작동하지 않습니다. 그러나 마우스의 중간 버튼을 사용하면 거의 항상 작동합니다.


1
Mac에서 마우스 가운데를 찾으려고합니다 .
에두아르

이 문제를 해결하기 위해 Firefox 애드온을 작성했습니다. github.com/danielnixon/link-fixer
danielnixon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.