2

我已经在一些现代浏览器中进行了测试,结果不一致。我确信这与捕获与冒泡事件支持差异有关。我已经设置了一个测试环境来在此处复制问题:pastebin并使用此服务运行实时预览。

问题是这样的:当祖先阻止冒泡时,一些浏览器会忽略锚点 href 点击事件。这是没有意义的,因为中间元素会在它冒泡之前触发它的事件,但锚元素不会。为什么 javascript click 事件有效但 href 事件无效?

这是按下“单击我”时的结果:

Chrome 9.0.597.98:href被忽略 + 打印内部和外部

IE 8.0.6001.19019:href有效 + 打印内部和外部

Firefox 3.6.13:忽略 href + 打印内部和外部

所以我的最终问题是:当祖先元素阻止事件冒泡时,如何让 href 跨浏览器工作?任何见解将不胜感激。

编辑:

我只想指出,Pointy 的评论中的讨论仍在继续,我还要感谢他的巨大帮助!

4

1 回答 1

3

问题是它不是

event.returnResult = false;

在 IE 中,它是:

event.returnValue = false;

该链接在 IE 中通过,因为您没有正确告诉浏览器不要采取默认操作。

如果您希望执行默认操作,请不要调用“.preventDefault()”,也不要将“returnValue”设置为false.

于 2011-02-24T15:48:43.697 回答