禁用IE9中的链接 - 原型stop()不起作用

时间:2010-10-12 21:38:13

标签: javascript javascript-events prototypejs internet-explorer-9

IE9仍处于测试阶段,但同样如此,这是一个问题:

使用prototype.js 1.6.1,将单击事件添加到链接的正确表单,以及覆盖默认链接行为,将是:

mylink.observe('click', function(e){
   doSomething();
   e.stop();
});

虽然这在我尝试的其他所有浏览器中都能很好地运行,但IE9是一个独特的案例。触发默认事件行为,我的链接将我带到链接的位置。似乎stop()没有在IE9中完成它的工作。

以下代码在IE9中完美运行:

mylink.onclick = function(){
   doSomething();
   return false;
}

知道我可以做些什么来修复IE9中使用的原型方法吗?

2 个答案:

答案 0 :(得分:9)

prototype.js版本低于1.7会浏览器嗅探以应用跨浏览器兼容的修补程序。

prototype.js用它的实现覆盖本机方法,在IE 9中失败;尽管它支持DOM Level 2 Events。

较新版本的prototype.js没有这个问题,因为它的'特征检测'而不是'浏览器嗅探'

答案 1 :(得分:1)

将以下标记放在<head></head>

中,将文档模式更改为IE8标准
<meta http-equiv="X-UA-Compatible" content="IE=8" />