掌握JavaScript中的事件监听

Pet*_* II 7 javascript firebug event-listener

上周,我们在过去一周左右的修补和测试后,将Omniture的分析代码发布到大量网站上.

在几乎所有的网站模板上,它都运行得很好.在一些零星的,不可预见的情况,有一个沉重的,浏览器崩溃的经验可以转走一些用户.

我们无法看到此时的崩溃模板之间的关系,同时也很多方法来解决,这是我们confuddling有关事件侦听器的一个.

单击这些模板上的任何锚点时,站点会崩溃.没有任何内联JS,虽然我们通过HTML的属性抨击我们的方式,但我们找不到可能导致此问题的可辨别的循环或问题.(当我们进行故障排除时,您可以在此处亲自体验[ 警告!点击页面中的任何链接都会导致浏览器崩溃!])

如何确定对象是否有侦听器?你如何确定触发事件时会触发什么?

仅供参考,我想设置断点,但 在Omnitures惨淡混淆代码和重复浏览器崩溃之间,我想更深入地研究如何处理这个问题.

Vic*_*tor 4

我用 firebug 在该页面的链接上做了一个“检查元素”,在 DOM 选项卡中它说有一个 onclick 函数(匿名),还有一些名为“s_onclick_0”的其他函数。

我哄萤火虫放了一块手表,就像

alert(document.links[0].onclick)
Run Code Online (Sandbox Code Playgroud)

提醒我omnature(我猜)附加到链接的onclick函数:

function anonymous(e) {
  var s = s_c_il[0], b = s.eh(this, "onclick");
  s.lnk = s.co(this);
  s.t();
  s.lnk = 0;
  if (b) {
     return this[b](e);
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)

也许以同样的方式,你可以看到在所有这些混淆之后它真正运行的是什么。