旧的JavaScript函数崩溃浏览器

时间:2012-04-17 20:09:15

标签: javascript mootools

我正在将一个mootools脚本集成到一个具有非常旧的JavaScript函数的页面上,该函数运行导航垂直菜单。这个旧剧本现在很难改变。

换行符是:

function stgobj(id) {
    with(document) return nIE && nVER < 5 ? all[id] : nNN4 ? layers[id] : getElementById(id);
}

不确定它的目的是什么,但看起来它正在呈现一些元素。如果注释,菜单将消失。

FF,Chrome,IE(不会崩溃,但菜单无法渲染)

任何解决浏览器崩溃的快速补丁?

2 个答案:

答案 0 :(得分:3)

看起来它的目的是返回与给定ID相对应的元素。代码只是使用基于浏览器的一些不同方法 - IE5及更早版本的document.all和Netscape 4的document.layers。除非您需要支持这些古老的浏览器,否则您可以更改函数以返回{ {1}}。或者更好的是,完全抛弃此功能并直接调用document.getElementById(id)

但是,如果它崩溃了像Firefox和Chrome这样的现代浏览器,那么您还应该查看浏览器检测逻辑(填充document.getElementByIdnIEnVER变量的代码) ,否则它可能最终会在其他地方崩溃。

答案 1 :(得分:2)

这是document.getElementById的“兼容性”功能。我认为你应该能够平等:

stgobj = document.getElementById.bind(document);