클릭 한 어떻게 시뮬레이션하려면 JavaScript 와?

39 m just i&, 혹시 내가 어떻게 시뮬레이션합니다 JavaScript 를 사용할 수 있는 요소를 클릭합니다.

현재 나는.

<script type="text/javascript">
function simulateClick(control)
{
    if (document.all)
    {
        control.click();
    }
    else
    {
        var evObj = document.createEvent('MouseEvents');
        evObj.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
        control.dispatchEvent(evObj);
    }
}
</script>

<a href="http://www.google.com" id="mytest1">test 1</a><br>

<script type="text/javascript">
    simulateClick(document.getElementById('mytest1'));
</script>

그러나 it& # 39 의 작동안함: (

아무 생각 없어?

질문에 대한 의견 (2)
해결책

39 위로, s what I here& 했다. # 39 의 it& 아주 단순하지만 작동하잖아:

function eventFire(el, etype){
  if (el.fireEvent) {
    el.fireEvent('on' + etype);
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}

사용법:

eventFire(document.getElementById('mytest1'), 'click');
해설 (21)

다음과 같은 단순한 사안이 어떨까요?

document.getElementById('elementID').click();

[대상] (https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click) IE 가 있다.

해설 (11)

Jquery 를 사용하여 있지만브라우저에 감지 피하기 위해 모든 것을 고려해 본 적이 있습니까? Jquery 있는 것처럼 간단한 것 "이라고 했다.

$("#mytest1").click();
해설 (8)

Jquery 를 사용하여 교도관님도요 a bunch of 공간을 절약할 수 있습니다. 경우에만 사용해야 합니다.

$('#myElement').trigger("click")
해설 (3)
var elem = document.getElementById('mytest1');

// Simulate clicking on the specified element.
triggerEvent( elem, 'click' );

/**
 * Trigger the specified event on the specified element.
 * @param  {Object} elem  the target element.
 * @param  {String} event the type of the event (e.g. 'click').
 */
function triggerEvent( elem, event ) {
  var clickEvent = new Event( event ); // Create the event.
  elem.dispatchEvent( clickEvent );    // Dispatch the event.
}

참조

해설 (1)

상위 대답은 'the best! 그러나 이 것은 레이프 = & # 39, Firefox 에서 마우스 이벤트를 트리거하는 가져다줄래요 때 ',' # 39 click&.

그래서 '& # 39', '로 바꾼' 도쿠망스크리티벤트 MouseEvents& # 39, 그리고 그 문제가 해결되었습니다. 추가 코드는 여부를 테스트하려면 다소 다른 코드는 방해할 수 있는 취소되었을 경우, 이벤트 로그 꼭 이래야겠어요 콘솔이군요.

function eventFire(el, etype){
  if (el.fireEvent) {
    el.fireEvent('on' + etype);
  } else {
    var evObj = document.createEvent('MouseEvents');
    evObj.initEvent(etype, true, false);
    var canceled = !el.dispatchEvent(evObj);
    if (canceled) {
      // A handler called preventDefault.
      console.log("automatic click canceled");
    } else {
      // None of the handlers called preventDefault.
    } 
  }
}
해설 (0)