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

标签 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对于 Web Intents,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/

最佳答案

你好 Yahel 好问题,

如果你这样调用它应该可以工作:

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

它需要第二个参数,即传递回回调的对象。当它自然发生时,这个对象会填充其他参数

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

如果您像我建议的那样传递一个空对象,它也可以正常工作,但在您的回调中,您只收到具有 type 属性的对象,因为这是由触发器添加的。

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

关于javascript - 如何以编程方式触发 Twitter 意图事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349917/

相关文章:

Javascript 事件委托(delegate),处理点击元素的 parent ?

c# - 每个 webcontrol 是否只有一个不是从 System.Web.UI.WebControls 继承的唯一事件?

javascript - ExecuteScript 不执行 html 中描述的函数,这些函数在页面加载后运行

javascript - 物理学中的著名旋转

javascript - 2个jquery绑定(bind)之间的区别

javascript - 在 Angular 2 App 中的已迭代集合中迭代时 *ngFor 的语法

javascript - 如何在 alert() 之后给予 focus()?

javascript - AngularJS 文本建议文本框

ruby - 针对外部 UDP API 进行测试。从哪儿开始?

ruby-on-rails - PG::ForeignKeyViolation: 将 Rails 中的 has_and_belongs_to_many 关联更改为 has_many :through 关联后出错