我的html头有:
<meta http-equiv="X-UA-Compatible" content="IE=7" >
在javascript中我使用:
showButtons: function() {
$$("#score-window .buttons")[0].show();
},
在除IE9、10以外的所有浏览器中,它都可以完美地工作。在IE9中,第一次调用函数是OK的,但下一次调用失败,因为$$返回"undefined"并且调用show()会破坏代码。
更新原型1.6.0.2包含在项目中
有两种修复方法:第一种是直接修复
$$('#score-window .buttons').invoke('show');
这将遍历所有与CSS选择器匹配的元素,并对它们运行show()
仅当在#score-window
.buttons
的元素时使用这将工作并且不会抛出错误,如果没有与选择器匹配的元素,它将不会触发invoke()
或
第二种修复方法是检查元素是否存在,然后显示它if($$('#score-window .buttons').length > 0) {
$$("#score-window .buttons")[0].show();
}
这些修复将直接修复错误-但是我认为你有一个不同的核心问题,你需要深入了解为什么CSS选择器第二次找不到元素。另外,如果你能够升级到PrototypeJS 1.7.1.