1

ナビゲーション垂直メニューを実行する非常に古い JavaScript 関数を含むページに mootools スクリプトを統合しています。この古いスクリプトは、現在変更するのが難しいでしょう。

改行は次のとおりです。

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

正確な目的はわかりませんが、いくつかの要素をレンダリングしているようです。コメントするとメニューが消えます。

FF、Chrome、IE(クラッシュしないがメニューが表示されない)

ブラウザのクラッシュを解決する簡単なパッチはありますか?

4

2 に答える 2

3

指定された ID に対応する要素を返すことが目的のようです。document.allこのコードは、IE5 以前とNetscape 4のブラウザに基づいていくつかの異なるメソッドを使用しているだけdocument.layersです。これらの古いブラウザをサポートする必要がない限り、関数を変更してdocument.getElementById(id). または、さらに良いことに、この関数を完全に捨ててdocument.getElementById直接呼び出します。

ただし、Firefox や Chrome などの最新のブラウザーがクラッシュする場合は、ブラウザーの検出ロジック ( nIEnVERおよびnNN4変数を設定するコード) も確認する必要があります。そうしないと、別の場所でクラッシュする可能性があります。

于 2012-04-17T20:17:12.383 に答える
2

の「互換」機能ですdocument.getElementById。私はあなたがそれを等しくすることができるはずだと思います:

stgobj = document.getElementById.bind(document);
于 2012-04-17T20:17:51.097 に答える