2011-09-08 2 views
6

Facebook JS SDK에는 jQuery의 trigger() 함수와 동일한 기능이 있습니다. FB.Event.fire 특정 이벤트에 대해 첨부 한 핸들러를 트리거 할 수 있습니다. QUnit의 단위 테스트에 유용합니다. 기본적으로 기대했던대로 작동합니다. FB.Event.fire("comment.create", location.href);comment.create 이벤트에 대한 처리기를 시작합니다.트위터 인 텐트 이벤트를 프로그래밍 방식으로 트리거하는 방법은 무엇입니까?

Twitter's object Web Intents의 경우 twttr은 비슷한 것으로 보이는 것, 즉 twttr.events.trigger()인데 문서화되지 않았습니다.

오류를 발생시키지 않고 코드에서 올바르게 트리거하는 방법을 생각할 수 없습니다.

이 개체에 연결하는 처리기를 프로그래밍 방식으로 테스트 할 수 있습니까?

를 들어 다음과 같은 코드 : 나는 같은 일을하여 트리거 할 수 있기를 기대

twttr.events.bind("click", function(intent){ 
    console.dir(intent); 
}); 

: twttr.events.trigger("click")

는 모든 I 오류의 결과를 시도, 그리고 내가 할 수 아니에요 obfuscated source code을 해독합니다.

나는 JSFiddle에 몇 가지 기본적인 코드를 넣어했습니다 http://jsfiddle.net/YL6SN/

답변

3

안녕하세요 야헬 좋은 질문이 호출하는 경우

그것은 작동합니다 :

twttr.events.trigger("click", {}); 

그것은 두 번째 매개 변수를 예상을 콜백으로 다시 전달되는 객체입니다. 자연스럽게 일어날 때 나는 그것이 잘 작동하지만 콜백에서 당신 만이 추가되기 때문에 type 속성 객체를받을 제안처럼이 개체는 다른 매개 변수

{target: b,region: "intent",type: "click",data: {}} 

당신이 빈 객체를 전달하면

으로 채워집니다 방아쇠.

두 번째 매개 변수를 전달하지 않을 때 발생하는 오류입니다. 매개 변수를 undefined에 추가 한 다음 죽습니다.

+0

니스. 고마워, 에두아르도. http://jsfiddle.net/YL6SN/2/ 작품. 'target '이 트위터 iframe의 DOM 요소로 간주되는 것처럼 보입니다 (내 테스트에 중요합니다). – Yahel