我的问题只是IE8中的问题,请参见图。
我有一个带有onclick属性的锚标记
<a href="javascript:void(0);" onclick="foo();">Click Me</a>
然后foo在别处宣布:
<script type="javascript/text">
function foo(){
//do some work
return false;
}
</script>
调用foo后,我的onbeforeunload处理程序正在执行,我不明白为什么。
我有其他实例,如果foo函数没有返回false,它会在IE中触发beforeunload事件,但即使这个函数返回false,它仍然会命中我的onbeforeunload处理程序而我无法找出原因。< / p>
有没有办法找出触发它的是什么。我在onbeforeunload处理程序中查看了事件对象,但它似乎没有给我和相关信息。
任何想法?
答案 0 :(得分:7)
将其更改为
<a href="#" onclick="return foo();">Click Me</a>
或
<a href="#" onclick="foo();return false;">Click Me</a>
答案 1 :(得分:0)
在microsoft“answer”上还有这个帖子:http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/ie8-fires-onbeforeunload-when-clicking-a/0ac8cd9b-7483-4e16-b7c4-346df1f1499a :)
答案 2 :(得分:0)
我在CK编辑器渲染的一些锚标签上也有这个问题。通过将点击事件附加到围绕有问题的锚标签的DIV并将已停止的事件传播到窗口来修复:
$('div.cke_form_fix').on('click', function(e){
e.stopPropagation();
});