我在一些现代浏览器中进行了测试,结果不一致。我确定它与捕获与冒泡事件支持差异有关。我已经设置了一个测试环境来复制此问题:pastebin并使用this service来运行实时预览。
问题在于:当祖先阻止冒泡时,某些浏览器会忽略锚点href click事件。它没有意义,因为中间元素会在它向下冒泡之前触发它的事件但是锚元素不会。为什么javascript点击事件有效,但href事件不会?
按下“click me”时,我的结果如下:
Chrome 9.0.597.98 :href被忽略+内部和外部打印
IE 8.0.6001.19019 :href工作+内部和外部打印
Firefox 3.6.13 :忽略href +打印内部和外部
所以我的最终问题是:当祖先元素阻止事件冒泡时,如何让href在跨浏览器中工作?任何见解将不胜感激。
修改
我只想指出,在Pointy的评论中继续讨论,我还要感谢他的巨大帮助!
答案 0 :(得分:3)
问题在于它不是
event.returnResult = false;
在IE浏览器中,它是:
event.returnValue = false;
该链接在IE中完成,因为您没有正确告诉浏览器不采取默认操作。
如果想要发生默认操作,则不要调用“.preventDefault()”并且不要将“returnValue”设置为false
。