자바 스크립트가 포함 된 링크를 프로그래밍 방식으로 클릭하려면 어떻게합니까?


답변:


237
document.getElementById('yourLinkID').click();

18
실제로 지금까지 IE, Safari, Chrome, Firefox 및 Opera를 포함한 모든 브라우저에서 작동했습니다.
arik

5
링크에 target="_blank"속성이있는 경우 새 창에 대해 브라우저의 팝업 차단기가 활성화됩니다.
wonsuc

45

이 기능은 최소한 Firefox 및 Internet Explorer에서 작동합니다. 이벤트 핸들러가 기본 조치를 취소하지 않으면 링크에 첨부 된 이벤트 핸들러를 실행하고 링크 된 페이지를로드합니다.

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}

5
Matthew가 정확하고 stackoverflow.com/questions/809057/… 에 대한 자세한 정보가 있습니다. 크로스 브라우저는 재미 있습니다 :)
Dan F

4
그것은 target속성을 존중하지 않습니다<base target="frame">
Vitim.us

38

현재 페이지 주소 만 변경하려면 Javascript에서 간단히 수행하면됩니다.

location.href = "http://www.example.com/test";

53
유스 케이스를 다루는 것이 아니라 대답하는 것을 싫어하기 때문에 투표하지 않았습니다. "나는 이것이 당신의 의도라고 생각하고 당신의 제약을 알지 못하므로 개념적 진공의 개념적 영역에서 이것을 사용하십시오."
cazlab

11
mailto:userjs 스크립트에서 링크 를 클릭하는 훌륭한 솔루션을 찾고 있었기 때문에 투표했습니다 . 확실히 시간을 절약했습니다. a요소를 만들고 "프로그래밍 클릭" 을 만들 준비가되었습니다. stackoverflow.com/questions/809057/…
AD

6
나도 click()다른 곳에서 제안 된 호출 방법을 시도했지만 IE9에서는 작동하지 않지만 설정은 location.href실제로 mailto:링크 에서 이메일을 보냈습니다 . 훌륭한 솔루션!
ajeh

이 방법은 PyQT4에서 유용했습니다. click () 호출이 작동하지 않았습니다. 감사!
VilleLipponen

링크를 클릭하고 싶은 내 유스 케이스를 다루지 않습니다. 링크는 아무데도 연결되지 않지만 클릭 이벤트와 관련된 다른 사항이 있습니다. 위치를 변경하고 싶지 않습니다.
랜덤 코끼리

17

간단히 그렇게 :

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

또는 페이지로드시 :

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>

2
예, 그러나 다른 클릭이 발생해야합니다.
Ólafur Waage 23:09

2
페이지로드와 같은 이벤트에서는 할 수 없습니까?
Bill the Lizard

2
도움을 주셔서 감사하지만 firefox 3을 사용하고 있는데 작동하지 않습니다. 오류 콘솔에서 Error : document.getElementById ( "myLink"). click은 기능이 아닙니다

파이어 폭스가 클릭 방법을 지원하지 않는 것 같습니다. 그리고 내 것을 포함한 대부분의 답변은 도움이되지 않습니다 :)
Canavar

@Canavar : 클릭 대신 클릭을 시도하십시오
Stefan Steiger

9

링크를 클릭하는 jQuery 방법은

$('#LinkID').click();

mailTo 링크의 경우 다음 코드를 작성해야합니다

$('#LinkID')[0].click();

2
이것은 작동하지 않습니다. 이것은 그가 물었던 질문에 대한 대답이 아닙니다.

2
작동하지 않습니까? 당신이 그것을 시도 했습니까? "LinkID"의 의미를 이해하시기 바랍니다. 요즘 누군가가 jQuery없이 js에 대해 충분히 후진이라면 정말 놀랄 것입니다. 어쨌든, 약간의 포인트를 얻은 후
공감할 수 있습니다

3
이것을 시도했는데 mailTo 링크가 React Native에서 작동하지 않습니다. 이것을 사용하십시오 : window.location.href = "mailto : address@gmail.com";
fungusanthrax

4
a링크 를 클릭해도 효과가 없었습니다 . [0].click()버전을 사용하면 document.getElementById('yourLinkID').click();대답 과 동일하다고 생각합니다 .

Firefox 브라우저 : <input>에서는 작동하지만 <a>에서는 작동하지 않습니다
jimver04

2

나를 위해, 나는 그것을 그렇게 작동하게 만들었습니다. 자동 클릭을 5000 밀리 초로 배포 한 다음 1000 밀리 초 후에 루프를 닫았습니다. 그런 다음 한 번의 자동 클릭 만있었습니다.

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function () {clearInterval(myVar)}, 1000); </script>

2

위의 방법 중 많은 것이 더 이상 사용되지 않습니다. 이제 여기에 있는 생성자를 사용하는 것이 좋습니다.

function clickAnchorTag() {
    var event = document.createEvent('MouseEvent');
    event = new CustomEvent('click');
    var a = document.getElementById('nameOfID');
    a.dispatchEvent(event);
}

그러면 앵커 태그가 클릭되지만 팝업 차단기가 활성화되어 있으면 표시되지 않으므로 사용자가 팝업을 허용해야합니다.


3
이벤트가 두 번 설정되는 이유를 모르겠습니다. event = new CustomEvent ( 'click'); 참조 이벤트, 그래서 var의 요점은 무엇입니까 ...
historystamp

나는 당신이 올바른 역사 스탬프라고 생각합니다. 마우스 이벤트를 생성 한 다음 즉시 새 이벤트로 덮어 씁니다.
John Lord

1

클릭 대신 자바 스크립트를 사용하여 클릭으로 연결되는 URL로 전달할 수 있습니까?

어쩌면 몸에 무언가를 넣을 수 있습니다.


사람들이 "태그"링크를 다룰 때 버튼 정보를 자연스럽게 찾지 않을 것이기 때문에 두 질문 모두에 게시했습니다. 기술적으로 관련이 없습니다.
Scott Tovey

1

다른 페이지로 리디렉션 할 수 있습니다. 실제로 링크를 클릭하여 링크로 이동하게하는 것은 의미가없는 것처럼 보이지만 전체 내용을 알 수는 없습니다.


2
내 경우에는 링크에 "_blank"가 대상인지 알 수 없으므로 location.href 또는 window.open을 사용해야하는지 모르겠습니다. 클릭을 보내는 것이 더 짧습니다. 사용 사례가 있습니다. 예를 들어, 모달 박스 열기와 같은 이벤트를 발생시킬 수 있습니다.
dxvargas

-2

사용자의 마우스로 아무것도 할 수 없습니다. 그러나 이벤트가 트리거 될 때 발생하는 상황을 완전히 제어 할 수 있습니다.

당신이 할 수있는 것은 신체 부하를 클릭하는 것입니다. W3Schools에 예가 있습니다.


6
@Nelit 어쨌든 404를 받기 전에 나쁜 링크였습니다. 손실이 없습니다.

-2

클라이언트 측 JS 기능은 다음과 같은 경우 링크를 자동으로 클릭합니다.

다음은 서버에서 전달 된 오류를 보유하는 숨겨진 양식 입력의 값을 확인하는 예제입니다. 클라이언트 측 JS는 값을 확인하고 지정한 다른 위치에 오류를 채 웁니다. 팝업 로그인 모달의 경우.

var signUperror = document.getElementById('handleError')

if (signUperror) {
  if(signUperror.innerHTML != ""){
  var clicker = function(){
    document.getElementById('signup').click()
  }
  clicker()
  }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.