programing

자바스크립트에서 x,y 좌표를 사용하여 클릭을 시뮬레이션하는 방법은 무엇입니까?

sourcetip 2023. 7. 31. 22:15
반응형

자바스크립트에서 x,y 좌표를 사용하여 클릭을 시뮬레이션하는 방법은 무엇입니까?

웹 페이지 내에서 자바스크립트의 클릭을 시뮬레이션하기 위해 주어진 좌표를 사용하는 것이 가능합니까?

클릭 이벤트를 발송할 수 있지만 실제 클릭과 다릅니다.예를 들어, 교차 도메인 iframe 문서가 클릭된 것으로 간주하도록 속이는 데 사용할 수 없습니다.

모든 최신 브라우저 지원document.elementFromPoint그리고.HTMLElement.prototype.click()적어도 IE 6, Firefox 5, Chrome의 모든 버전, 그리고 아마도 당신이 관심을 가질만한 Safari의 모든 버전.링크를 따라가서 양식을 제출하기도 합니다.

document.elementFromPoint(x, y).click();

예, 이벤트를 만들고 이벤트를 발송하여 마우스 클릭을 시뮬레이션할 수 있습니다.

function click(x,y){
    var ev = document.createEvent("MouseEvent");
    var el = document.elementFromPoint(x,y);
    ev.initMouseEvent(
        "click",
        true /* bubble */, true /* cancelable */,
        window, null,
        x, y, 0, 0, /* coordinates */
        false, false, false, false, /* modifier keys */
        0 /*left*/, null
    );
    el.dispatchEvent(ev);
}

사용에 주의하십시오.click요소에 대한 방법 - 널리 구현되었지만 표준이 아니며 예를 들어 실패합니다.팬텀JS. 저는 jQuery의 구현이.click()옳은 일을 하지만 확인하지 않았습니다.

마우스 이벤트 개체를 사용하도록 업데이트된 토라자부로의 답변입니다.

function click(x, y)
{
    var ev = new MouseEvent('click', {
        'view': window,
        'bubbles': true,
        'cancelable': true,
        'screenX': x,
        'screenY': y
    });

    var el = document.elementFromPoint(x, y);

    el.dispatchEvent(ev);
}

나에게는 효과가 있지만 콘솔에 올바른 요소를 인쇄합니다.

코드는 다음과 같습니다.

function click(x, y)
{
    var ev = new MouseEvent('click', {
        'view': window,
        'bubbles': true,
        'cancelable': true,
        'screenX': x,
        'screenY': y
    });

    var el = document.elementFromPoint(x, y);
    console.log(el); //print element to console
    el.dispatchEvent(ev);
}
click(400, 400);

보안상의 이유로 Javascript로 마우스 포인터를 이동하거나 클릭을 시뮬레이션할 수 없습니다.

당신이 성취하려고 하는 것은 무엇입니까?

언급URL : https://stackoverflow.com/questions/3277369/how-to-simulate-a-click-by-using-x-y-coordinates-in-javascript

반응형