0

我的 html 标头有:

<meta http-equiv="X-UA-Compatible" content="IE=7" >

在javascript中我使用:

showButtons: function() {
    $$("#score-window .buttons")[0].show();
},

在除 IE9,10 之外的所有浏览器中,它都能完美运行。在 IE9,10 中,第一次调用函数是可以的,但接下来会失败,因为 $$ 返回“未定义”并且调用 show() 破坏了代码。

更新项目中包含的原型 1.6.0.2。

4

1 回答 1

1

对此有 2 个修复 - 首先是直接修复

$$('#score-window .buttons').invoke('show');

这将遍历与 CSS 选择器匹配的所有元素并show()在它们上运行

仅当您只有一个带有类.buttons的元素时才使用它#score-window

这将起作用并且不会引发错误,就好像没有与选择器匹配的元素一样它不会触发invoke()

或者

第二个修复我会检查元素是否存在然后显示它

if($$('#score-window .buttons').length > 0) {
    $$("#score-window .buttons")[0].show();
}

这些修复将直接修复错误 - 但是我认为您需要深入研究另一个核心问题,以找出 CSS 选择器第二次找不到元素的原因。此外,如果您能够升级到 PrototypeJS 1.7.1。

于 2013-03-01T15:27:27.157 回答