2012-01-10 10 views
6

링크 ('a'태그)가 있습니다. 자바 스크립트를 사용하여 클릭하려고합니다. .click(); 동안. FF en IE에서는 Chrome에서 오류가 발생합니다. (크롬에 개체에 클릭 방식이 없음)Chrome에서 'a'태그 클릭 시뮬레이션

'onclick'을 실행하거나 'href'로 리디렉션하면 작업이 수행되지 않습니다.

방법에 대한 아이디어가 있으십니까? 나는 이걸 위해서 전체 라이브러리를 얻지 않는 것이 좋습니다.

답변

1
var event = document.createEvent("MouseEvents"); 
      event.initMouseEvent("click", true, true, window, 
       0, 0, 0, 0, 0, 
       false, false, false, false, 
       0, null); 
      element.dispatchEvent(event); 

은 크롬

+0

그것은 IE- –

+0

@ Dr.Molle가 아닙니다. 내 실수, 편집 된 대답. – amal

1

도서관을 원하지 않지만이 공간이 매우 작다는 것을 알고 있습니다.이 경우 event.simulate을 사용할 수 있습니다. 그것은 PrototypeJS lib이지만, 나는 이식이 매우 쉬울 것이라고 확신한다.

당신이 부를 것이다 프로토 타입을 사용하려면 : 그것은 문제없이 크로스 브라우저를 작동

$('my_anchor').simulate('click'); 

.

+0

감사합니다. .. mootools의 경우 .fireEvent ('click')가 올바른 것입니다. – joelhardi

-1

당신이 jQuery를 알고 있다면 단순히 익명 함수를 만들고 온 클릭 이벤트를 수신합니다. href에 대한 클래스 또는 ID,

등을 지정해야합니다. HTML :

<a href='' id='clickMe'>Click here</a> 

jQuery를 :이 도움이

$(function() { 
    $("#clickMe").click(function() { 
    ... the action you wish to perform ... 
    }) 
}) 

희망. 데이브

+0

클릭 이벤트 만 수신하면 op는 '시뮬레이션'을 원합니다. – epoch

+0

유효한 점, 나는 op 메시지를 더 철저히 읽었어야했다! – detheridge02

0

사용 : 바로 라이브러리의 방법을 사용하려면 미리 알림에 대한

function dispatchEvent(el, e) 
{ 
    // console.log("dispatching"); 

    if ("createEvent" in document) 
    { 
     var evt = document.createEvent("HTMLEvents"); 
     evt.initEvent(e, false, true); 
     el.dispatchEvent(evt); 
    } 
    else 
    { 
     el.fireEvent("on" + e); 
    } 

} 

dispatchEvent(document.getElementById("mylink"), "click"); 
관련 문제