【发布时间】:2012-02-18 07:02:37
【问题描述】:
我正在开发一个浏览器插件,我希望它在用户点击某些东西时表现出某种特定的行为。不限于但包括链接行为!
问题是插件必须适用于各种各样的网站,其中一些网站使用可怕的伪协议,例如:<a href="javascript: showSomeElement();">Show Element</a>
目前我的行为通过anchor.addEventListener('click', superAwesomeFunction);添加到锚标记
不幸的是,这有一个问题,点击侦听器只触发一次。如果我preventDefault() 当然点击监听器会留下来,但我现在已经破坏了主机站点!否则,单击链接会触发单击侦听器,但仅在第一次单击时触发。我想知道如果第二次单击链接,为什么我的 superAwesomeFunction() 不会再次触发。 href="javascript:things()" 做的比我知道的多吗?
【问题讨论】:
-
<a>元素是否被替换? -
当我使用 Firebug 进行测试时,它不会被替换。
-
您的描述有点令人困惑。 superAwesomeFunction 没有触发,但 showSomeElement 触发了吗?
-
两者都会触发,但仅在第一次点击链接时触发。第二次点击时,只有 shoeSomeElement 触发。
-
试图提供帮助,但我无法复制。也许你可以调整这个小提琴来更像你的情况:jsfiddle.net/97Hy7
标签: javascript anchor href addeventlistener