9

IE9 仍处于 Beta 阶段,但都一样,这里有一个问题:

使用prototype.js 1.6.1,将点击事件添加到链接并覆盖默认链接行为的正确形式是:

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

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

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

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

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

4

2 回答 2

9

低于 1.7 的prototype.js 版本会进行浏览器嗅探以应用跨浏览器兼容修复。

prototype.js 用它的实现覆盖了本地方法,这在 IE 9 中失败了;即使它支持 DOM Level 2 事件。

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

于 2010-11-05T21:02:30.173 回答
1

通过将以下标签放入其中,将文档模式更改为 IE8 标准<head></head>

<meta http-equiv="X-UA-Compatible" content="IE=8" />
于 2012-09-12T07:18:05.743 回答