我正在将一个mootools脚本集成到一个具有非常旧的JavaScript函数的页面上,该函数运行导航垂直菜单。这个旧剧本现在很难改变。
换行符是:
function stgobj(id) {
with(document) return nIE && nVER < 5 ? all[id] : nNN4 ? layers[id] : getElementById(id);
}
不确定它的目的是什么,但看起来它正在呈现一些元素。如果注释,菜单将消失。
FF,Chrome,IE(不会崩溃,但菜单无法渲染)
任何解决浏览器崩溃的快速补丁?
答案 0 :(得分:3)
看起来它的目的是返回与给定ID相对应的元素。代码只是使用基于浏览器的一些不同方法 - IE5及更早版本的document.all
和Netscape 4的document.layers
。除非您需要支持这些古老的浏览器,否则您可以更改函数以返回{ {1}}。或者更好的是,完全抛弃此功能并直接调用document.getElementById(id)
。
但是,如果它崩溃了像Firefox和Chrome这样的现代浏览器,那么您还应该查看浏览器检测逻辑(填充document.getElementById
,nIE
和nVER
变量的代码) ,否则它可能最终会在其他地方崩溃。
答案 1 :(得分:2)
这是document.getElementById
的“兼容性”功能。我认为你应该能够平等:
stgobj = document.getElementById.bind(document);