如何以编程方式触发Twitter意图事件?

时间:2011-09-08 14:45:19

标签: javascript events testing twitter qunit

Facebook JS SDK相当于jQuery的trigger()函数,FB.Event.fire 允许您触发为特定事件附加的处理程序。它对我在QUnit中的单元测试很有帮助。它基本上按照你的预期工作; FB.Event.fire("comment.create", location.href);comment.create事件触发我的处理程序。

Twitter's object对于网络意图,twttr似乎有类似的内容,twttr.events.trigger(),但其未记录。

除此之外,我无法弄清楚如何在代码中正确触发它,而不会抛出错误。

如何以编程方式测试我附加到此对象的处理程序?

代码如下:

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

我希望能够通过执行以下操作来触发它:twttr.events.trigger("click")

我尝试的所有内容都会导致错误,而且我无法破译obfuscated source code

我在JSFiddle上提出了一些基本代码:http://jsfiddle.net/YL6SN/

1 个答案:

答案 0 :(得分:4)

你好Yahel好问题,

如果你这样说它应该有效:

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

它期望第二个参数是传递回回调的对象。当它自然发生时,该对象将填充其他参数

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

如果你像我提议的那样传递一个空对象,它也可以正常工作,但在你的回调中你只能使用type属性接收该对象,因为这是由触发器添加的。

这正是您未传递第二个参数时触发的错误。它会尝试将type参数添加到undefined然后死掉。